NUCLEO-F411RE RT-Thread 体验 (2) - GCC环境 Pin 驱动的移植

NUCLEO-F411RE RT-Thread 体验 (2) - GCC环境 Pin 驱动的移植

1、准备工作

前面控制LED的函数,其实还是调用的hal的函数,RT-Thread分离了驱动层与应用层,驱动层往下对接hal库,往上对接pin组件。
驱动层代码路径如图:
NUCLEO-F411RE RT-Thread 体验 (2) - GCC环境 Pin 驱动的移植_第1张图片
pin组件代码位于
NUCLEO-F411RE RT-Thread 体验 (2) - GCC环境 Pin 驱动的移植_第2张图片

2、添加Makefile的编译

NUCLEO-F411RE RT-Thread 体验 (2) - GCC环境 Pin 驱动的移植_第3张图片
NUCLEO-F411RE RT-Thread 体验 (2) - GCC环境 Pin 驱动的移植_第4张图片

第一次编译


报错提示没有board.h,在Core/Inc目录新建一个board.h,内容如下:
NUCLEO-F411RE RT-Thread 体验 (2) - GCC环境 Pin 驱动的移植_第5张图片

第二次编译

无错误。

3、添加组件的初始化

NUCLEO-F411RE RT-Thread 体验 (2) - GCC环境 Pin 驱动的移植_第6张图片
编译无报错。

4、修改main函数

添加LED PIN的定义
NUCLEO-F411RE RT-Thread 体验 (2) - GCC环境 Pin 驱动的移植_第7张图片
编译报错如下:

意思是Error_Handler参数不匹配,这个函数main.c其实定义了,我们把drv_common.h里去掉
NUCLEO-F411RE RT-Thread 体验 (2) - GCC环境 Pin 驱动的移植_第8张图片
调用rt_pin_write函数控制LED灯

NUCLEO-F411RE RT-Thread 体验 (2) - GCC环境 Pin 驱动的移植_第9张图片
Gpio初始化部分也去掉hal库的代码

NUCLEO-F411RE RT-Thread 体验 (2) - GCC环境 Pin 驱动的移植_第10张图片
main.c还要加上pin mode初始化
NUCLEO-F411RE RT-Thread 体验 (2) - GCC环境 Pin 驱动的移植_第11张图片

烧录进去是不是灯还在闪烁,pin驱动移植完成。

5、代码

代码下载

你可能感兴趣的:(RT-Thread,stm32,嵌入式硬件,RT-Thread,单片机)