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

本文讲述了作者在Linux和Windows背景下的STM32MCU开发经历,重点介绍了如何使用STM32CubeMX工具搭建FreeRTOS到STM32F407ZGT6,配置RCC、GPIO、USART和添加RTOS系统,以实现在无屏幕设备中监控程序运行的LED操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

        本次demo目标立下:

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

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

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

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

STM32CubeMX 端配置

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

1. 配置RCC

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

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

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

选择 这个tab

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

3. 配置点灯LED对应GPIO

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

在这个图上面,找到PF9:

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

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

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

4. 配置SYS

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

5. 配置串口

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

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

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

6. 添加Freertos系统

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

7. 配置project信息

选择Project Manager - Project

然后在 Code Generator

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

8. 在Keil码代码

9. 烧写到板子

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值