串口的发送与发送需要多线程互斥,那么发送和接收呢?

冉航--小虾米 2013-10-29 06:21:54


我用2个线程,同时 发送数据 给串口,应该互斥。

但是,我想问的是,一个线程负责接收,另一个线程负责发送,发送与接收需要互斥吗?即 接收的时候不能发送,发送的时候不能接收. 我个人认为发送与接收不需要互斥,因为 发送数据的目的地 和 接收读取 的 发源地不是一个地方,不会发生冲突,不知道大家是怎么想的。
...全文
1997 15 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
冉航--小虾米 2013-11-06
  • 打赏
  • 举报
回复
现在2个线程去接收 OK, 一个线程接到了O,另一个线程接收到了K. OK被分开了。
worldy 2013-11-02
  • 打赏
  • 举报
回复
引用 4 楼 nice_cxf 的回复:
看是总线是422,232还是485了,485是半双工,不能同时收发,其他两种可以
485半双工是属于串口之外的事情,内部还是全双工的
冉航--小虾米 2013-11-02
  • 打赏
  • 举报
回复 1
谢谢大家的答复,我现在发现串口怎么这么麻烦啊。。我现在用ANDROID开发板和串口设备进行通信,用开发板官方的API,只有4个API函数,open, write ,read, select, 没有像windows上的那种异步事件通信。 现在发现串口互斥的太多了: 1.发送与发送互斥;2. 接收与接收互斥。 那我写代码就这样写吧: 只有1个线程 进行接收,其他线程发送间互斥就行了。 全双工,发送与接收不需要互斥。
躺着睡的蜗牛 2013-11-02
  • 打赏
  • 举报
回复
串口自带Buffer的, 好像还是循环的, 注意不要溢出就行了。
worldy 2013-11-02
  • 打赏
  • 举报
回复
引用 9 楼 gaoxiaoweiandy 的回复:
全双工: 发送和接收 不需要互斥。 发送与发送 必须互斥。 接收与接收需要 互斥吗?我感觉还是对这点有点疑惑。
接收应该不是是不是要互斥的问题,应该是调度的问题,也就是接收的数据应该归谁处理,然后发送到对应的模块
赵4老师 2013-11-01
  • 打赏
  • 举报
回复
接收与接收需要互斥
nadleeh 2013-10-31
  • 打赏
  • 举报
回复
引用 2 楼 gaoxiaoweiandy 的回复:
我现在也很疑惑,有的人说需要 串口 读写互斥,有的说不需要。
串口大部分都是半双工的,同一时间片要么发,要么收,不能即发又收的
赵4老师 2013-10-31
  • 打赏
  • 举报
回复
引用 4 楼 nice_cxf 的回复:
看是总线是422,232还是485了,485是半双工,不能同时收发,其他两种可以
惊现串口达人!膜拜!
冉航--小虾米 2013-10-31
  • 打赏
  • 举报
回复
全双工: 发送和接收 不需要互斥。 发送与发送 必须互斥。 接收与接收需要 互斥吗?我感觉还是对这点有点疑惑。
冉航--小虾米 2013-10-31
  • 打赏
  • 举报
回复
全双工: 发送和接收 不需要互斥。 发送与发送 必须互斥。 接收与接收 实践证明 也应该互斥,但不知 道其原理, 我用2个线程 去接收 messageOk,结果 第一个线程接收到了messag,第二个线程接收到了eok.等于说 第二个线程将第一个线程该接收的数据抢过去了。 半双工: 发送 和 接收 必须互斥。 发送 与发送 必须互斥。 接收与接收 理论上 也应该互斥。
nice_cxf 2013-10-30
  • 打赏
  • 举报
回复
看是总线是422,232还是485了,485是半双工,不能同时收发,其他两种可以
赵4老师 2013-10-30
  • 打赏
  • 举报
回复
串口相关硬件也有是否支持全双工的区别?
AnYidan 2013-10-30
  • 打赏
  • 举报
回复
引用 3 楼 zhao4zhong1 的回复:
串口相关硬件也有是否支持全双工的区别?
硬件是基础,决定上层建筑
冉航--小虾米 2013-10-29
  • 打赏
  • 举报
回复
我现在也很疑惑,有的人说需要 串口 读写互斥,有的说不需要。
一根烂笔头 2013-10-29
  • 打赏
  • 举报
回复
你想的是对的,没有共享资源的访问,也就不需要临界区!此外读但不修改,即使共享也不需要互斥,如果存在共享资源的写,那么有读写互斥问题。 你这里是发送-串口-接收地-读取,发到的地和接收的地不是一块地,也就不需要互斥了

70,023

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧