2025-11-20 06:39:11
FreeRTOS的tick时间要看你配置的configTICK_RATE_HZ这个参数定1ms还是10ms。比如设置1000就是每秒1000次中断,每个中断间隔1毫秒。而-freertos event这个指令通常是告诉编译器用FreeRTOS的事件组功能,这个功能能让不同任务之间发消息通知。事件组就像个公共广播站,一个任务发个通知,其他任务听到就能触发动作。
为什么是这个答案呢?首先看FreeRTOS官方文档写的,configTICK_RATE_HZ默认是1000Hz也就是1ms,但开发者可以改成100Hz或者更慢的速率。比如工业设备常用100Hz,这样中断间隔10ms,省点电还能降低CPU占用。而事件组在v10.0.1版本里有个新特性,支持32个事件组,每个组有16个标志位。比如你用指令-freertos event创建事件组后,任务A执行设置标志操作,任务B就能用wait_forbit等待特定标志。这就像手机抢红包,任务A发红包(设置标志),任务B抢到就领取(等待标志)。不过要注意配置错误的话,可能会导致任务卡死。比如设置tick为500Hz但事件组用1ms的代码,系统就会乱套。还有模拟的时候,有些词可能会连读成“freertos event组”或者“event组功能”,但意思不变。
本题链接: