蓝桥杯开发板STM32G431RBT6高阶HAL库学习FreeRtos——完成第一个小项目点灯

一、配置LED引脚(注意引脚都配置为高电平)

二、新建两个任务,一个为动态创建,一个静态创建(以后大多数情况进行动态创建)//将两个优先级设置成一样


补充:

1.FreeRTOS创建静态任务和动态任务的各自优缺点

c 复制代码
静态任务和动态任务的区别,就是一个需要自己建立堆栈,一个不需要自己建立堆栈。
稳定肯定是静态创建高,但是耗内存!任务删除以后这段内存没法释放掉,就只能浪费掉!
动态创建方法可能因为内存不足或者碎片话的情况下导致任务创建失败。

2.任务栈大小

c 复制代码
usStackDepth,栈大小,每创建一个任务,系统就会为该任务分配一块内存(堆栈)
单位是字(word),而不是字节(Byte)
在32位机中 (STM32xx), 1 word = 4Byte,分配的空间就是stackSize = usStackDepth * 4
默认最小栈大小 configMINIMAL_STACK_SIZE(128)

3.任务优先级

bash 复制代码
优先级必须比这个宏要小,数字越小,优先级越低,与中断相反的(中断数字越小,优先级越高)
configMAX_PRIORITIES 宏大小可随意,这里配置的是32,但最好使用实际需要的最小数值以避免内存浪费
FreeRTOS理论上可支持无限个任务。
如果优先级设置的比configMAX_PRIORITIES 大,会将优先级自动设置为最大优先级configMAX_PRIORITIES

保存并生成项目

三、分析代码

3.1 查看FREERTOS初始化函数

3.2 两个任务创建函数

3.2 在两个任务函数编写代码(任务一:LED1每隔一秒闪烁,任务二:LED2每隔一秒闪烁)

3.3 烧录查看效果

相关推荐
世人万千丶2 小时前
参数管理_Flutter在鸿蒙平台路由参数最佳实践
学习·flutter·华为·harmonyos·鸿蒙
遇乐的果园5 小时前
前端学习笔记-vue加载渲染优化
前端·笔记·学习
华清远见IT开放实验室5 小时前
实验室建设案例 | 石家庄科技信息职业学院嵌入式实验室——从底层硬件到系统应用,一所应用型高校的嵌入式人才培养这样落地
linux·arm开发·stm32·嵌入式硬件·高校·实验室建设
遇乐的果园6 小时前
前端学习笔记-vue状态管理优化
前端·笔记·学习
从零开始的代码生活_7 小时前
C++ 继承详解:访问控制、对象模型、菱形继承与设计取舍
开发语言·c++·后端·学习·算法
可乐奶茶sky7 小时前
AI Agent 学习
人工智能·学习
茯苓gao8 小时前
嵌入式开发笔记:EtherCAT协议从硬件到软件完整配置指南——从零搭建一套EtherCAT通信系统
笔记·嵌入式硬件·学习
GeekArch8 小时前
第24讲:Vibe模式代码风格控制——适配Keil/STM32工程规范
人工智能·stm32·单片机·嵌入式硬件·mcu·决策树·ai编程
Freedom_my9 小时前
STM32项目3
stm32·单片机·嵌入式硬件
RD_daoyi9 小时前
外链权重暴跌至13%,品牌提及反超传统链接——2026年不做Digital PR,你的独立站等于隐形
运维·网络·学习·机器学习·搜索引擎