搭建STM32F407的Freertos系统(基于STM32CubeMX)

       本人长期开发Linux、Windows上应用软件,一直以来MCU开发有所接触,但较少(最近项目需要,小公司么,都得会,被逼的),好在有STM32CubeMX这样工具,貌似就是我想要的工具。

        本次demo目标立下:

        1. 搭建或移植FreeRTOS到STM32上,毕竟对于长期在Linux环境开发(虽然也号称嵌入式),什么中断、拉高拉低,一直来没有搞的明明白白。有个RTOS会方便很多

         2. printf重定向到串口1,可以实现打印输出

         3. 有个任务:定期拉高LED,然后反转,比较方便的看看程序运行情况。(在没有屏幕的设备里,这个就好比串口输出,很常用)

本次采用板子是 晋中的开发板,搜索了下(网上关于这块介绍比较少,大部分是什么原子的),但对比了两个品牌开发板的原理图,大部分是一致的,因此很多情况下都是可以参考的,甚至复用吧!!

STM32CubeMX 端配置

打开STM32CubeMX软件,首先要选择芯片,晋中开发的是 STM32F407ZGT6

1. 配置RCC

CPU心脏起搏器选择,大概意思选择外部的方式:HSE、LSE也是

搭建STM32F407的Freertos系统(基于STM32CubeMX)_第1张图片

这个地方,如果要讲究,就得看开发板原理图,是不是这样设计的

2. 第二步,我觉得应该配置时钟:

选择 这个tab

然后配置参考如下图(实际跟上一步有关系,都是HSE、LSE配置),芯片168MHz是正常的频率,目前小白的水平,先不管功耗的问题,就是正常频率去运行。(注意那几个选择)

搭建STM32F407的Freertos系统(基于STM32CubeMX)_第2张图片

3. 配置点灯LED对应GPIO

点灯是Output,看了下原理图,开发板用与点灯是PF9、PF10

在这个图上面,找到PF9:

搭建STM32F407的Freertos系统(基于STM32CubeMX)_第3张图片

然后,点击对应的"引脚"就可以设置属性:主要是in 还是out,如果是右键的话,可以设置名称之类的。

搭建STM32F407的Freertos系统(基于STM32CubeMX)_第4张图片

GPIO还有个点,也要设置的。比如pull-up 还是 pull - down,要看原理图(跟电源连接的,就是up)

搭建STM32F407的Freertos系统(基于STM32CubeMX)_第5张图片

到此为止,两个点灯的GPIO已经配置好了。

4. 配置SYS

系统一些调试信息,TIM1也很重要

搭建STM32F407的Freertos系统(基于STM32CubeMX)_第6张图片

5. 配置串口

板子的串口1是接在USB转串口芯片上的,方便电脑侧获得输出结果,因此,打算用串口1作为Printf输出接口。如下图,

搭建STM32F407的Freertos系统(基于STM32CubeMX)_第7张图片

大概意思:采用同步方式,然后勾选中断。如果要DMA方式,还要DMA Settings进行配置,不过我没有成功(配置是可以配置,但不知道哪里错了,运行不起来)

当然波特率这些也是可以设置的,在Parameter Settings里面就可以根据实际需要设置。

6. 添加Freertos系统

搭建STM32F407的Freertos系统(基于STM32CubeMX)_第8张图片

到此为止,所有配置都可以了。

7. 配置project信息

选择Project Manager - Project

搭建STM32F407的Freertos系统(基于STM32CubeMX)_第9张图片

然后在 Code Generator

搭建STM32F407的Freertos系统(基于STM32CubeMX)_第10张图片

最后一步,就是生成代码,生成好之后可跳转到Keil 这边。

8. 在Keil码代码

9. 烧写到板子

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