大家有没有遇到过多线程使用同一个串口发送数据,数据是交叉的

发布于 2020-08-13 13:48:08

写程序的时候,多个线程需要调用同一个串口的串口发送函数,这样写会造成数据交叉吗,比如A线程发送AA 01 02 FF,B线程发送AA 03 04 FF,B线程比A线程优先级高,会造成出现A线程数据还没发送完的时候,B线程开始发送,以至于造成AA 01 AA 03 04 FF 02 FF的情况吗。之前遇到过别人的程序出现过。

查看更多

关注者
0
被浏览
254
geniusgogo
geniusgogo 认证专家 2020-08-13

不但会交叉还会出现乱码(前一个还没从移位寄存器里移走,后来的就会冲走前面的),所以要做互斥的。

3 个回答
liu2guang
liu2guang 认证专家 2020-08-13

会的,需要做互斥操作,保证每一个线程最小发送数据单位

aozima
aozima 2020-08-13
拒绝白嫖,拒绝键盘侠!

乱码一般还是不会的,data register和shift register是分开的,shift register一般不可见。

撰写答案

请登录后再发布答案,点击登录

发布
问题

分享
好友

手机
浏览

扫码手机浏览