- 博客(22)
- 收藏
- 关注
原创 STM32FreeRtos入门(五)——同步互斥与通信
本文介绍了任务同步与互斥的实现方法。在非FreeRTOS环境下,同步可通过变量轮询实现(如while循环等待标志位),互斥则采用禁止中断或测试置位等机制。FreeRTOS提供了专门的同步互斥API更高效可靠。文章通过串口通信示例说明同步互斥的必要性,并对比了裸机与RTOS方案的优缺点,指出非RTOS方案可能存在的效率问题和任务切换风险,而RTOS原生API能更好地解决这些问题。代码示例展示了标志位同步和临界区保护的具体实现。
2025-10-25 00:54:17
398
原创 STM32FreeRtos入门(四)——任务状态和调度
FreeRTOS 通过优先级抢占和时间片调度实现高效的任务管理,任务状态的切换由事件(如延时、信号量)和调度器共同控制。理解这些机制是使用 FreeRTOS 进行多任务编程的基础。
2025-10-07 03:14:36
1206
原创 STM32FreeRtos入门(三)补充——计算栈的大小
本文介绍了FreeRTOS中估算栈大小的方法。主要内容包括:栈的用途(存储函数调用信息、局部变量等),估算步骤(分析函数调用链、计算每个函数栈使用量、考虑中断开销),以及动态验证方法(栈填充法、硬件调试器)。最后建议采用静态估算与动态验证结合的方式,并预留20%-50%余量,确保系统稳定运行。
2025-10-06 20:52:28
595
原创 STM32FreeRtos入门(三)——创建多任务程序以及删除任务
本文介绍了FreeRTOS任务创建与删除的实现方法。主要内容包括:1)静态创建任务(xTaskCreateStatic)和动态创建任务(xTaskCreate)的区别,前者需要用户提供栈和TCB内存,后者由系统自动分配;2)任务创建参数说明,包括任务函数、名称、栈大小、优先级等;3)静态任务创建所需的三个关键元素:StackType_t数组(栈内存)、StaticTask_t(任务控制块)和TaskHandle_t(任务句柄);4)任务删除的实现方法,通过任务句柄调用vTaskDelete函数。文中还提供了
2025-09-24 13:20:05
926
原创 STM32FreeRtos入门(二)——创建第一个多任务程序
本文分享了FreeRTOS学习经验,重点解析了任务创建流程与多任务实现。通过韦东山开发板实践,详细介绍了动态/静态内存分配的任务创建流程(参数初始化、内存分配、TCB初始化、加入就绪列表等)。
2025-09-22 16:51:14
961
原创 STM32快速复习(十)PWR电源控制
像汽车钥匙,遥控器,电子密码锁等以及含有定时开关机等功能的电路,都需要做到不工作时进入省电模式来减少电池的消耗。为此,STM32推出了可以低功耗运行的电源控制模块。PWR;PWR负责管理STM32内部的电源供电部分,可以实现可编程电压监测器和低功耗模式的功能待机模式只能由WKUP引脚的上升沿、RTC闹钟事件的上升沿、NRST引脚上外部复位、IWDG复位来退出待机模式。在待机模式恢复后,会重头开始执行命令。所以不需要配置时钟了。在待机模式下, 1.8V的区域的时钟关闭,电压调节器也关闭。
2024-09-02 02:20:52
1916
原创 STM32快速复习(九)RTC时钟模块
STM32 的实时时钟(RTC)是一个独立的定时器。STM32 的 RTC 模块拥有一组连续计数的计数器,在相应软件配置下,可提供时钟日历的功能。修改计数器的值可以重新设置系统当前的时间和日期。RTC 模块和时钟配置系统 (RCC_BDCR 寄存器)是在后备区域,即在系统复位或从待机模式唤醒后 RTC 的设置和时间维持不变。但是在系统复位后,会自动禁止访问后备寄存器和 RTC,以防止对后备区域 (BKP) 的意外写操作。所以在要设置时间之前, 先要取消备份区域(BKP)写保护。
2024-09-02 02:19:20
2239
原创 STM32快速复习(六)USART串口
USART:TX(Transmit Exchange)数据发送脚、RX(Receive Exchange)数据接收脚。
2024-06-28 00:27:32
2123
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅
2