UCOS中的消息队列并不是真正意义上的队列,它只是发送了想要发送数据的指针,这个时候,如果发送多个同一个变量的不同数据,那么数据就相当于被覆盖了.
解决办法:
定义一个缓存数组buffer[i];
更改变量i的数值,就可以实现一个变相的FIFO,因为每次发送的变量的指针是不同的.
i++;
i %= bufsize;
buffer[ ( i + bufsize - 1 ) % bufsize ]; //此处是取的上一个数据,当前数据直接取buffer[i]即可.
UCOS中的消息队列并不是真正意义上的队列,它只是发送了想要发送数据的指针,这个时候,如果发送多个同一个变量的不同数据,那么数据就相当于被覆盖了.
解决办法:
定义一个缓存数组buffer[i];
更改变量i的数值,就可以实现一个变相的FIFO,因为每次发送的变量的指针是不同的.
i++;
i %= bufsize;
buffer[ ( i + bufsize - 1 ) % bufsize ]; //此处是取的上一个数据,当前数据直接取buffer[i]即可.