中断模式队列
在中断服务例程中使用队列,
选择在中断回调函数中填充带有中断模式的队列,
API
xQueueSendToFrontFromISR();
xQueueSendToBackFromISR();
xQueueReceiveFromISR();
专门用于中断服务例程
信号量用于事件通信,而队列不仅可以用于事件通信,还可以用来传递数据。
parameters 队列句柄,消息指针,是否切换调度更到任务优先级的任务
由于在创建队列时设置了队列中数据单元的长度,所以会从该指针指向的空间复制对应长度的数据到队列的存储区域,所以是拷贝传递!
当队列已满而无法将数据写入时,则返回errQUEUE_FULL
所以在填充队列时需要进行检验
两种高效队列读取串口模型
- 将接收到的字符先缓存在内存中,当接收到一个传输完成消息,或是检测到传输完成后,使用信号量让某个任务解除阻塞,这个任务将对数据缓存进行处理。
- 在中断服务中直接解析收到的字符,然后通过队列将解析后的命令发送到处理任务中。