搭建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也是

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

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. 烧写到板子

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: STM32F407是一种32位ARM Cortex-M4处理器的微控制器单元(MCU),它具有高性能和丰富的外设和内存资源。该芯片在工业控制、通信、医疗设备和汽车电子等领域具有广泛的应用。 FreeRTOS是一个用于嵌入式系统的开源实时操作系统。它提供了任务调度、时间管理、内存管理、中断处理等功能,可以为STM32F407等处理器提供可靠的多任务处理能力。 STM32F407配合FreeRTOS可以提供高效的并发多任务程序开发。通过任务调度器,我们可以将任务分配给处理器资源,并按照优先级和时间片等规则进行任务切换。这种任务调度机制可以使我们的嵌入式系统具备同时处理多个任务的能力,提高系统的效率和性能。 此外,FreeRTOS还提供了时间管理功能,可以使我们按照规定的时间间隔执行任务。这对于需要精确控制时间的应用程序非常重要,比如实时数据采集和控制系统。 内存管理是嵌入式系统开发中的一个关键问题,STM32F407及其FreeRTOS操作系统都提供了内存管理功能。通过合理的内存分配和释放,可以充分利用系统资源,确保系统稳定性和可靠性。 在中断处理方面,FreeRTOS提供了灵活且可靠的机制来处理嵌入式系统的中断。它可以对中断进行优先级控制、安全保护和处理程序编写,提高系统的响应速度和可靠性。 总之,STM32F407FreeRTOS的结合为嵌入式系统的开发提供了强大的功能和灵活性。通过合理地利用STM32F407及其提供的丰富外设资源和FreeRTOS提供的系统功能,我们可以根据需求开发出高效可靠的嵌入式应用程序。 ### 回答2: STM32F407是意法半导体公司推出的一款高性能的32位微控制器,配备了Cortex-M4内核。该微控制器具有丰富的外设接口和强大的计算能力,特别适用于嵌入式系统的开发。 FreeRTOS是一款开源的实时操作系统RTOS),适用于嵌入式系统的开发。它提供了任务管理、时间管理、内存管理以及通信机制等功能,可以帮助开发者更好地管理嵌入式系统的资源和多线程任务。 将STM32F407FreeRTOS结合使用可以提高系统的可靠性和实时性。首先,FreeRTOS能够提供任务调度的功能,确保多个任务能够按照指定的优先级进行调度,避免任务间的干扰。其次,FreeRTOS提供了丰富的时间管理功能,例如定时器和延时等,有助于实现实时性较高的应用。 同时,FreeRTOS还提供了内存管理的功能,可以帮助开发者更好地管理系统的资源。例如,通过使用FreeRTOS的动态内存分配函数,开发者可以更灵活地分配和释放内存,避免资源的浪费和冲突。 总之,将STM32F407FreeRTOS结合使用可以让嵌入式系统的开发更加方便和高效。它们的组合可以提供强大的计算能力和实时性,并能更好地管理系统资源和任务。 ### 回答3: STM32F407是一款强大的单片机芯片,具有高性能和丰富的外设接口。FreeRTOS是一款开源的实时操作系统,被广泛应用于嵌入式系统开发中。 STM32F407通过其高性能的处理能力,能够处理复杂的任务,同时其丰富的外设接口可方便地与其他外部设备进行通信。而FreeRTOS作为一款实时操作系统,能够有效管理和调度任务,提供了任务同步、任务通信、内存管理等功能。因此,将STM32F407FreeRTOS结合使用,可以更好地发挥芯片和操作系统的优势,实现更复杂的嵌入式系统开发。 在使用STM32F407FreeRTOS开发嵌入式系统时,可以将系统划分为多个任务,每个任务负责不同的功能。通过FreeRTOS提供的任务调度机制,可以根据任务的优先级和时间片轮转等算法,动态地分配处理器时间片。这样可以保证系统中的任务按照一定的优先级顺序被执行,提高系统的实时性和响应性能。 此外,FreeRTOS还提供了多种任务同步和任务通信的机制,如信号量、事件标志组、消息队列等。通过这些机制,不同的任务之间可以进行数据共享、同步等操作,实现任务的协同工作。 总而言之,STM32F407FreeRTOS的结合能够提供强大的硬件支持和高效的任务管理机制,为嵌入式系统的开发提供了便利。它们的结合使用可以在嵌入式系统开发中提高效率、降低开发难度,同时保证系统的实时性和稳定性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值