怎么样能同时读写串口成功?

wuxiao0313 2011-08-18 09:25:16
我是在主线程里打开和设置串口 然后分别开两个线程读和写

现在的读是没有数据就阻塞 直到有数据再继续执行
写线程是每隔一秒中不断的写

现在的情况是 读串口一直是失败的
而将写串口的线程注释掉 读就会阻塞在那或者读取成功返回

怎么实现能让读写都可用?
...全文
594 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
sharptiger123 2011-08-20
  • 打赏
  • 举报
回复
Rs232好像不行 485是支持同时收发的
gold_water 2011-08-20
  • 打赏
  • 举报
回复
串口有读 和写缓存,是可以同时收发的;
Rs232及 485都可以的。
chenjiawei007 2011-08-20
  • 打赏
  • 举报
回复
串口有读 和写缓存,是可以同时收发的。检查下你读串口传入参数是否有问题。

Eleven 2011-08-18
  • 打赏
  • 举报
回复
注意同步~
qiuxin425 2011-08-18
  • 打赏
  • 举报
回复
从网上下载多线程的串口类,有很多,还有例子
hnzlk 2011-08-18
  • 打赏
  • 举报
回复 1
建议看一下别人的代码,比较成熟的类。比如CSerialport,CnComm都是很不错的。
eatman 2011-08-18
  • 打赏
  • 举报
回复
我写过的案例,读写都没问题
使用了mscomm32的组件

读串口用的是事件触发的

写的时候倒是随机的

同时在读写串口的时候用到了多线程同步

Critical Section Objects
DeleteCriticalSection
LeaveCriticalSection
EnterCriticalSection
InitializeCriticalSection
希望对你有帮助
QunKangLi 2011-08-18
  • 打赏
  • 举报
回复
使用带异步操作参数的读写函数.
同步只需要用在数据缓冲区的访问上,对硬件操作不需要特别的同步.
jiuzhoulh 2011-08-18
  • 打赏
  • 举报
回复
串口支持同步读写,各自使用的是不同的引脚!
qiuxin425 2011-08-18
  • 打赏
  • 举报
回复
串口通讯太慢了 改网口吧 呵呵
buyong 2011-08-18
  • 打赏
  • 举报
回复
但是对应你主机上是一个串口,所以必须同步。
如果对应不同串口,就不用考虑同步。
[Quote=引用 5 楼 wuxiao0313 的回复:]
把硬件拿来测一下就好了 之前没测试好
我感觉这个同步不太重要吧 因为串口读写是使用不同的针脚啊 互相并不占用 不知道想的对不对 呵呵
[/Quote]
wuxiao0313 2011-08-18
  • 打赏
  • 举报
回复
把硬件拿来测一下就好了 之前没测试好
我感觉这个同步不太重要吧 因为串口读写是使用不同的针脚啊 互相并不占用 不知道想的对不对 呵呵

16,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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