硬汉嵌入式论坛

 找回密码
 立即注册
查看: 714|回复: 1
收起左侧

[有问必答] 多任务下,串口发送的冲突问题

[复制链接]

42

主题

81

回帖

207

积分

高级会员

积分
207
发表于 2023-3-23 17:59:50 | 显示全部楼层 |阅读模式
在ucos系统下,假如有多个task

task1
{
   串口发送数据“task1”
  delay(10)
}


task2
{
   串口发送数据“task2”
  delay(10)
}



task3
{
   串口发送数据“task3”
  delay(10)
}


由于抢占问题,串口发送的数据可能发生错乱,粘包的现象
问:
有什么比较好的办法实现多线程下的数据发送吗,同时避免数据发送的粘包?
回复

使用道具 举报

3

主题

336

回帖

345

积分

高级会员

积分
345
发表于 2023-3-23 20:29:58 | 显示全部楼层
整个串口发送函数用互斥量保护;或者把要发送的数据丢给专用队列,另一个专用线程从队列里去数据发送。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-5 13:34 , Processed in 0.184710 second(s), 23 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表