【正点原子uCOS疑问】例11-1 UCOSIII消息传递

疑问

【问1】当软件定时器STOP后,为什么msg_num还能自增。也就是说我觉得 “ALIENTEK %d”应该是从 ALIENTEK 1 到 ALIENTEK 4,不应该到 ALIENTEK 8。

【问2】看液晶屏上的显示,Remain Size是由4减到0后再增加的,为什么不是4减到3,或者减到2后就增加。因为我觉得在定时器回调函数中每OSQPost一次后,在msgdis_task中应该就能请求到一次消息,所以不用等到Remain Size减到0后才能请求到消息。

解惑

【问1】

  • 关于第一个问题,首先要搞清楚软件定时器是500ms,显示任务是1s。
  • 发送一次消息队列,消息队列对应的剩余量要减1;
  • 请求一次消息对了,消息队列对应的剩余量要加1

好了,接下来看下面的图,每500ms加入一个数据到消息队列中,每1s要从消息队列中出去一个数据,这样下去,占满消息队列(4条消息)的时候,不就是消息内容为8的时候嘛~~

在这里插入图片描述

【问2】

这个需要打印到串口,带时间戳看看便知

发布了691 篇原创文章 · 获赞 1108 · 访问量 78万+

猜你喜欢

转载自blog.csdn.net/ReCclay/article/details/104546114