FreeRTOS 常用 API


FreeRTOS 常用 API 1. 堆栈使用情况查询 uxTaskGetStackHighWaterMark() 功能:获取任务的最小剩余堆栈空间(高水位线),单位字节。 参数:任务句柄(NULL 表示当前任务)。 返回值:历史最小剩余堆栈值(接近 0 表示堆栈即将溢出)。 示例: UBaseTy

FreeRTOS 事件组核心机制


FreeRTOS 事件组核心机制 1. 事件组基础 本质:32位无符号整数(EventBits_t类型),每个比特位代表一个独立事件 核心优势: ⚡ 轻量级同步:比信号量/队列更节省资源 🔀 多事件聚合:支持同时等待/触发多个事件 ⏱️ 无锁设计:原子操作事件位,无需额外同步原语 2. 关键 AP

FreeRTOS 消息队列核心机制


FreeRTOS 消息队列核心机制 1. 队列创建与删除 创建队列函数:QueueHandle_t xQueueCreate(UBaseType_t uxQueueLength, UBaseType_t uxItemSize); uxQueueLength:队列容量(消息项数,非字节数) uxIte

FreeRTOS 任务管理核心功能


FreeRTOS 任务管理核心功能 1. 任务的创建 函数原型: BaseType_t xTaskCreate( TaskFunction_t pxTaskCode, // 任务函数指针 const char * const pcName, // 任务名称(唯一性)

FreeRTOS 任务间传递参数的方式


FreeRTOS 任务间参数传递与通信方式总结 FreeRTOS 提供了多种机制用于任务间传递参数和通信,各有其特点和适用场景。选择合适的方式对程序效率、可靠性和资源利用至关重要。 方式 特点 适用场景 1. xTaskCreate() 参数 一次性传递、简单直接、仅限任务创建时传入。 创建任务时传

YMODEM 完整文件传输数据流解析


YMODEM 完整文件传输数据流解析(以 1024 字节文件为例) 传输角色: 发送方:Tera Term 接收方:嵌入式设备(运行 rz 命令) 完整数据流(十六进制表示) sequenceDiagram participant Sender as 发送方(Tera Term) participa

串口文件传输协议——YMODEM 协议


一、基础定义 定位 点对点文件传输协议,基于 XMODEM 改进(Chuck Forsberg, 1980s)。 应用场景:串口通信(RS-232)、嵌入式固件更新、早期 BBS 系统。 核心改进 ✅ 批处理传输(多文件) ✅ 支持文件名 + 文件大小(信息包头部) ✅ 数据块扩容至 1024字节(

Cypress MCAL ICU 模块实现PWM输入捕获


PWM输入捕获模式用于捕获pwm周期及占空比。 仅可使用TCPWM作为外部资源。 MCAL 配置 Port配置 Icu配置

Cypress MCAL ICU 模块实现时间戳模式


该模式仅可使用TCPWM作为外部资源。 该模式本质上是在边沿检测中断里将Counter寄存器值循环记录到预先设置的buffer。 MCAL 配置 Port配置 Icu配置 配置时间戳回调通知:

Cypress MCAL ICU 模块实现脉冲计数


ICU脉冲计数可使用GPIO或TCPWM作为外部资源。 脉冲计数模式没有中断回调,但是也必须要开启硬件Capture中断才能实现计数。 MCAL配置 使用GPIO实现 port配置:配置为GPIO数字输入模式即可。 Icu配置: 使用TCPWM实现