LoRaWAN_stack移植笔记 (二)_GPIO
stm32相关的配置
由于例程使用的主控芯片为STM32L151C8T6,而在本设计中使用的主控芯片为STM32L051C8T6,内核不一样,并且Cube库相关的函数接口及配置也会有不同,所以芯片的驱动所以做修改。另外例程中对STM32库函数的再一次封装的方法也非常值得学习。
GPIO 的配置
例程中可以看到,对IO口的初始化只有这一句,是因为例程中对GPIO的操作进行了封装,方便了上层的使用。
例程中使用Enum定义了64个IO口,其中
0-15 表示PA0-15
16-31表示PB0-15
32-47表示PC0-15
48-63表示PD0-15
64-79表示PE0-15
80-95表示PF0-15
96-111表示PH0-15
这样,在定义引脚的时候直接是用Enum变量就可以表示出IO的PIN以及PORT,在完成驱动程序之后,操作引脚非常的方便。
例如 使用了一个LED灯,连接的是PB_5,这样我们#define LED PB_5,在程序里面就可以得知使用的是PB口,以及PIN_5,方法如下:
由于PB_5 = 16+5 = 21;
21/16 = 1,得知使用的是PB口,21%16 = 5,得知使用的是PIN_5。
其中C语言的时下代码如下,使用(&0xff)以及<<的操作,效率比做除法及取模的效率更高
邮箱地址:454626653@qq.com 欢迎咨询搭讪
您的留言或需求: