首先安装STM32CubeMX,CubeMX是ST公司出品的一款图形化代码生成工具,通过图形化界面,可以非常直观的配置好各种片上外设,时钟,中断,DMA等等各种设备的参数,并直接生成初始化代码
官网下载链接:STM32CubeMX | STMCU中文官网
本章写一个程序,建立两个LED灯闪烁任务,先在cubemx中新建工程,然后进入keil5对程序修改,编译,生成的文件通过unlink连接开发板进行烧录
首先进入CubeMX, 新建工程,进入后选择芯片处理器,本文选择的stmf051r8t6处理器
接下来先配置SYS,勾选debug serial wire调试接口,timebase选择TIM1定时器
然后配置RCC,这两个时钟源都选择Crystal/Ceramic Resonator(外部晶振时钟)
然后配置GPIO,选择PC8和PC9两个引脚,设置GPIO_Output作为两个输出,来控制LED灯闪烁
接下来选中Middleware...下的FREERTOS,选择CMSIS_V1,然后切换到Task and Queue页面,点击Add添加任务,添加时只改变任务的优先级为High,其他默认就行了,同理添加第二个任务,也只改变任务优先级为High
成功添加后,有我们添加的两个任务和一个default任务,如图所示
接下来切换到Clock Configuration界面,选择外部时钟,设置到最高时钟频率,如下
接下来切换到Project Manager界面,设置工程文件名和保存路径,keil5开发就选择MDK-ARM
然后点开Code...栏,勾选为每个外设建立.c和.h文件,最后点击右上角Generate Code生成项目
接下来我们用keil5打开新建的工程,打开LED/Applicstion/User/Core下的freertos.c文件
更改freertos.c文件代码最下面刚新建的两个任务的代码,如下图代码,然后就直接编译
然后打开ST-Link Utility软件,连接开发板,打开我们刚生成的hex文件,hex文件所在地址一般在创的LED文件里面,然后点击Start开始烧录
如下图闪烁,已经将写的连个任务程序烧录成功