STM32
直播中

李晓龙

8年用户 195经验值
私信 关注
[问答]

UCOS创建的问题如何解决

请问 原子老师  
我UCOS中创建四个任务    任务1,2,3,4的优先级分别是5 ,6,8,9   ,任务1,2,3,4里面我分别写着
printf("onen");
printf("twon");
printf("threen");
printf("fourn");
但是串口出来 的数据 有时候是顺序的。有时候是 ONE TWO FOUR THREE    不知道为什么   
OStimeDlyHMSM(0,0,0,500); 这个函数都设成了500  不知道这个对它有没有影响 ?  还有这个500是什么作用 ?

回帖(7)

陈丽

2020-5-22 13:43:15
正常啊.500是500ms吧.你看看这个函数的原型,就知道参数的意义了.
举报

谷雪阳

2020-5-22 13:58:14
。。路过。。。。
举报

卢原继

2020-5-22 14:06:43
正常如果延时相同的情况下都是500,但优先级不同, 不是优先级高的先执行吗?跟延时函数里的500有关系吗?
举报

陈鹏

2020-5-22 14:15:27
是优先级高的先运行.
但是延时500ms,不是每一次都是严格的500ms,有的可能是500.1,有的可能是500.5(因为中断调度的时间,不能准确预知),那么这个不同步,就可能导致你的那个顺序错乱.
举报

张子腾

2020-5-22 14:29:27
解了,谢谢原老老师。  真懂了  我刚开始这么想的 但是不敢确认 哈哈 谢谢。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分