基于RT-THREAD STM32F429IGT6 BSP前期准备
硬件平台:野火STM32挑战者 MCU:STM32F429IGT6
开发工具:
- MDK Version:5.25
- VSCode
- env
- STM32CubeMX Version:5.2.1
- rt-thread源码 Version:4.0.1
工具获取
几点说明
- 整个
bsp
的应用程序都是基于rt-thread
设备驱动框架建立的,所以需要了解rt-thread
设备驱动框架的请参考设备和驱动。 - 了解
env
工具的使用请参考env视频教程以及env用户手册。 - 建立
BSP模版
步骤比较多,但是整体并没有难度,只需要细心点、有耐心点就没有任何问题。 BSP模版
建好之后,以后就不用再建立了,所有的应用功能,我们都会在该模版下完成。一次建立,永久享用。
下面正式开始建立BSP模版
一、复制源码BSP模版
- 第一步:
从源码路径rt-thread\bsp\stm32\libraries\templates
下复制文件夹stm32f4xx
,粘贴至rt-thread\bsp\stm32
目录下。 - 第二步:
把第一步复制过来的文件夹重新命名为stm32f429-hlg-v1.0
。也可以命名为其他名字。 - 第三步:
在stm32f429-hlg-v1.0\applications
目录下新建两个文件夹bsp_inc
和bsp_src
,以及一个main.h
文件;其中bsp_inc
中未来放的是用户程序的所有头文件,对应的bsp_src
里面放的当然是用户程序的所有源文件。文件main.h
是用来管理所有的头文件的。最终该目录下的文件结构如下图所示:
- 第四步:
- 复制
图1
里面的SConscript
文件粘贴至图1
下的bsp_src
文件内。并修改其内容为下图所示:
图2.bsp_src\SConscript文件
说明:主要是给env工具编译工程时的链接脚本添加用户程序的源文件及头文件路径
- 第五步:
修改applications
下的SConscript
文件内容如下图所示:
图3.applications\SConscript文件
说明:作用同上图
- 第六步:
修改applications
下的main.h
文件内容如下图所示:
图4.applications\main.h文件
说明:以后用户应用程序所有的头文件全部包含在这里面
二、STM32CubeMX生成配置代码
打开stm32f429-hlg-v1.0\board\CubeMX_Config
目录下的CubeMX_Config.ioc
工程。
- 第一步:
点击下图红框选项更改芯片型号为STM32F429IGTx
:
图5.STM32CubeMX更改MCU型号
依次点击下图红框选项进行更改:
- 第二步:
依次点击下图红色框选项,配置RCC
。
- 第三步:
依次点击下图红色框选项,配置SYS
。
- 第四步:
依次点击下图红色框选项,配置USART1
。
说明:BSP模版的FinSH终端默认使用USART1,因此需要先使能该串口。当然也可以根据硬件情况更改为其他串口。
- 第五步:
依次点击下图红色框选项,配置MCU系统时钟。
图10.STM32CubeMX配置系统时钟
其中序号2
、3
分别为外部输入低速时钟、高速时钟,根据晶振实际参数填写。序号6
可以直接填入系统支持的最大时钟值,STM32F429支持180MHz,所以此处填入180后直接回车,软件会自动计算各个参数。
-
第六步:
依次根据下图说明,配置工程选项。
图11.STM32CubeMX配置工程 -
第七步:
点击下图红框选项生成配置代码。
图12.STM32CubeMX生成配置代码 -
第八步:
打开stm32f429-hlg-v1.0\board\CubeMX_Config\Src
路径下的main.c
文件,复制该文件里面的void SystemClock_Config(void)
函数的全部内容;替换掉stm32f429-hlg-v1.0\board
路径下的board.c
文件里面的void SystemClock_Config(void)
函数的全部内容。该函数初始化了MCU系统的时钟,如果重新利用第五步方法更改了时钟,那么需要重新替换该函数。 -
第九步:
修改stm32f429-hlg-v1.0\board
路径下的b