基于FreeRTOS下多任务的同时操作

前言:

本文主要介绍了把FreeRTOS移植到stm32芯片的详细过程和利用FreeRTOS进行多任务的处理,我所用的开发板是野火指南者stm32系列,文中记录了我移植的具体步骤,硬件现象的展示,若有不足的地方,欢迎大家指出

说明:

博主的MDK版本如下:(建议把版本更新到5.23以上)
在这里插入图片描述

一、FreeRTOS移植

(1)移植准备工作

  • (1) 首先你需要准备一个及其简洁的工程
    在这里插入图片描述
  • (2)准备FreeRTOS源码
    链接: FreeRTOS源码
    下载如下:
    在这里插入图片描述
  • (3)整理源码
    在这里插入图片描述
    具体步骤:
    a.在准备好的工程里面创建FreeRTOS文件夹
    在这里插入图片描述

b.依次点击FreeRTOS—>Sourse—>Portable—>保留如下文件夹其余全部删去
在这里插入图片描述
c.然后把下面的文件移入刚刚在工程下创建的FreeRTOS文件即可
在这里插入图片描述

(2)FreeRTOS移植到stm32中

  • a.点开工程目录创建FreeRTOS_CORE和FreeRTOS_PORTABLE,添加如下文件即可
    在这里插入图片描述

  • b.添加头文件路径
    在这里插入图片描述

  • c.把FreeRTOSConfig.h文件添加到工程任意位置(这里我选择User)
    在这里插入图片描述

  • d.修改stm32f10x_it.c文件(打开文件,屏蔽下面三个函数)
    在这里插入图片描述

  • e看见这个数字,那么恭喜你移植顺利完成
    在这里插入图片描述

(3)例程验证

在这里插入图片描述

可以看见红绿蓝黄紫青白六种彩色灯依次闪亮,说明移植成功啦

二、多任务实现

(1)修改原例程

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 没有错误没有警告,下载到stm32开发板中运行即可

(2)效果展示

在这里插入图片描述

  • 可以看见串口在不断接收HELLO Livechen,LED灯在不停的闪亮,两个任务在同时进行

总结:

(1)在FreeRTOS移植的时候,在准备好的工程文件里面首先添加一个文件夹FreeRTOS用来存放FreeRTOS源码,保证在添加文件的时候能够找到FreeRTOS源文件
(2)任何路径最好不要出现中文,这样会减少许多麻烦。相信博主,这样做真香

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
基于FreeRTOS操作系统的stm32F103C8T6项目可以实现多任务并发运行。FreeRTOS是一个小巧、可裁剪的RTOS系统,具有以下特点: 1. 内核支持抢占式、合作式和时间片调度,可以根据任务的优先级来决定下一刻应该运行哪个任务。 2. 提供了一个用于低功耗的Tickless模式,可以有效节省能源。 3. 支持动态或静态RAM,可以根据需要选择创建任务、消息队列、信号量、软件定时器等组件时使用的内存类型。 4. 已经在超过30种架构的芯片上进行了移植,包括stm32F103系列。 5. FreeRTOS系统简单、小巧、易用,通常情况下内核占用4k-9k字节的空间。 6. 支持实时任务和协程,任务任务任务与中断之间可以使用任务通知、消息队列、信号量等进行通信和同步。 7. 具有优先级继承特性的互斥信号量,高效的软件定时器,强大的跟踪执行功能和堆栈溢出检测功能。 8. 任务数量和优先级没有限制,可以根据项目需求创建任意数量和优先级的任务。 因此,基于FreeRTOS操作系统的stm32F103C8T6项目可以充分利用该RTOS系统的特点,实现多任务并发运行,提高系统的实时性和可靠性。 #### 引用[.reference_title] - *1* [stm32F103C8T6基于FreeRTOS操作系统的多任务(STM32CUBEMX)](https://blog.csdn.net/Mouer__/article/details/121616118)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [stm32F103C8T6基于FreeRTOS操作系统的多任务](https://blog.csdn.net/weixin_46129506/article/details/121659483)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值