
简介
该用户还未填写简介
擅长的技术栈
可提供的服务
暂无可提供的服务
多任务开发中,任务间协作的核心难题 —— 执行顺序协调与共享资源保护,都离不开 “同步” 与 “互斥” 机制。本文用 “厕所使用” 的生活场景通俗拆解两者本质,通过 “计算任务 + 打印任务” 的实战具象化同步逻辑,同时暴露全局变量标志位同步方案的 CPU 浪费、精度不足等缺陷。从概念区分到代码实现,再到问题分析,为后续学习 FreeRTOS 标准同步 / 互斥组件(信号量、互斥锁等)铺垫基础,助

本文通过优化音乐播放任务,解决了卡顿与按键失效的矛盾。首先提高音乐任务优先级消除卡顿,但导致按键失效;随后将自创延时函数mdelay替换为FreeRTOS的vTaskDelay,使高优先级任务在延时期间主动释放CPU资源。最终实现音乐流畅播放的同时按键控制正常响应,体现了任务优先级匹配和主动让步在RTOS调度中的重要性。文章还预告下篇将深入任务状态机制,实现音乐暂停/恢复功能。

摘要:本文通过STM32实战验证环形缓冲区在异步数据处理中的有效性。以按键状态存储为例,初始化容量为100的环形缓冲区,在定时器回调中写入按键状态(0x11/0x81),主程序读取并显示于OLED。通过10秒延时模拟耗时操作,实验证明缓冲区能完整保存期间所有按键数据(如连续3次触发),解决了中断快写与主程序慢读的速度矛盾。关键点包括结构体封装缓冲区参数、指针循环移动实现高效存取,展示了C语言在嵌入

本文详细解析了FreeRTOS的源码结构与编程规范。重点包括:核心功能文件(task.c/list.c等)的作用、可移植目录(portable)的设计原理、内存管理(MemMang)的实现方式;介绍了配置文件FreeRTOSConfig.h的定制方法和main.c中的启动流程;详解了FreeRTOS特有的数据类型(TickType_t/BaseType_t)和严格的命名规范(变量前缀、函数前缀、宏

本文介绍了环形缓冲区(Ring Buffer)的原理与实现,旨在解决按键输入处理中的丢失问题。环形缓冲区通过固定大小的数组和读写指针循环移动,高效处理“一边写入、一边读取”场景。文章详细讲解了环形缓冲区的结构、空满判断逻辑,并提供了C语言实现的库函数封装(初始化、读写操作)。该方案适用于中断写入、主程序读取的场景,防止数据覆盖丢失,具有高效、易复用的特点。最后提到下篇将应用此技术解决按键丢失问题。

摘要: 本文介绍了利用DMA(直接存储器访问)实现UART高效发送数据的方法。传统查询/中断方式需CPU频繁参与数据搬运,而DMA通过硬件自动完成内存与外设间的数据传输,仅需CPU启动并处理一次完成中断,大幅降低资源占用。文章详解了DMA发送的三要素(源地址、目标地址、数据长度)、CubeMX配置步骤及HAL库函数调用流程,并展示了DMA发送与中断接收环形缓冲区的结合应用。实验验证了DMA在大数据








