我在STM32 在串口中断程序中调用OSQPost()时,在任务中调用OSQPend()等待接收队列的消息,结果接收的数据是错误的。
但是我在一个任务中调用OSQPost(), 在另一个任务调用OSQPend()等待接收队列的消息,结果接收的数据是正确的。
不知道是啥原因。
我也做过一些实验 :
1. 不用操作系统的的消息队列,而是自己建立一个队列去接收串口消息, 结果是 接收的消息是正确的。
2. 我在串口中断程序中调用OSQPost()时,给OSQPost的参数消息是一个固定的值,结果接收的数据不是给定的那个值。
请高手帮忙分析一下。 |