**
开发板:STM32f407VET6
开发环境:MDK5,CubeMx,Env,串口助手
源码:rt-thread-v3.1.2
一、搭建开发环境
RT-Thread团队为了减少开发者在开发过程的一些琐事引入了一些额外的辅助工具来减少开发者的工作量。
本文章是采用MDK5的开发环境,使用RT-Thread Studio的同学可以忽略此步骤。
安装STM32 CubeMx可以参考这里CubeMx安装教程
然后安装辅助工具到RT-Thread的官网下载env工具下载
二、移植BSP到自己的开发板
去RT-Thread的官网下载一个2.0版本以上的源码包,2.0版本以上的支持env工具的menuconfig命令。
官方源码下载地址
下载解压源码包后我们要挑选我们自己使用的板子源码
在解压完目录下,documentation、examples这两个文件夹可以去掉,到bsp目录下我们只要stm32的源码,其它型号的我们可以删除掉,bsp/stm32/stm32f407-atk-explorer,我用的正点原子开发板的这个源码。在keil软件里面修改Device选择你手上的板子型号,Debug设置你的烧录工具。原理上拿到与自己相似的板子型号修改这些就可以了,最后再根据你手上的开发板的设置原理,是否使用外部晶振,led的驱动I/O口是哪一个等等在keil软件里面稍做修改就完成最简单的移植了。
**
三、配置PWM输出
Env使用方法
在bsp\stm32\docs目录下有很清楚的官方指导如何添加外设驱动的步骤,在添加外设驱动前我们需要去学习一下Kconfig语法,scons构建和Env工具的使用。
1.配置Kconfig语法
打开bsp\stm32\stm32f407-atk-explorer\board下的Kconfig文件
编辑Kconfig文件,配置你的LED驱动I/O是哪一个TIM口,使用的是定时器通道几:
2.配置Env工具使能PWM外设驱动
在bsp\stm32\stm32f407-atk-explorer目录下右键鼠标打开Env工具,在Env控制台输入menuconfig命令:
3.scons构建
Save保存配置退出后,在Env控制台输入scons --target=mdk5重新生成工程:
4.CubeMx添加PWM外设
双击打开bsp\stm32\stm32f407-atk-explorer\board\CubeMX_Config目录下的工程:
配置LED复用的TIM:
5.打开keil软件
打开工程重新编译,在rtconfig.h我们可以看到PWM已经被使能了:
在board.c我们手动添加TIM3的初始化:
TIM3初始化代码在bsp\stm32\stm32f407-atk-explorer\board\CubeMX_Config\Src目录下
最后创建一个pwm_led线程(使用官方模板)来驱动LED:
至此编译成功下载到开发板上就能看到LED灯从暗到亮,从亮再到暗在跑了。