hur.cn - 华软网

 热门搜索

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

  作者:未知    来源:网络    更新时间:2011/8/18
我是在主线程里打开和设置串口 然后分别开两个线程读和写

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

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

怎么实现能让读写都可用?
---华软 网友回答---
我写过的案例,读写都没问题
使用了mscomm32的组件

读串口用的是事件触发的

写的时候倒是随机的

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

Critical Section Objects
DeleteCriticalSection
LeaveCriticalSection
EnterCriticalSection
InitializeCriticalSection
希望对你有帮助
---华软网友回复---
建议看一下别人的代码,比较成熟的类。比如CSerialport,CnComm都是很不错的。

---华软网友回复---
从网上下载多线程的串口类,有很多,还有例子
---华软网友回复---
注意同步~
---华软网友回复---
把硬件拿来测一下就好了 之前没测试好
我感觉这个同步不太重要吧 因为串口读写是使用不同的针脚啊 互相并不占用 不知道想的对不对 呵呵
---华软网友回复---
但是对应你主机上是一个串口,所以必须同步。
如果对应不同串口,就不用考虑同步。
引用 5 楼 wuxiao0313 的回复:
把硬件拿来测一下就好了 之前没测试好
我感觉这个同步不太重要吧 因为串口读写是使用不同的针脚啊 互相并不占用 不知道想的对不对 呵呵

---华软网友回复---
串口通讯太慢了  改网口吧 呵呵
---华软网友回复---
串口支持同步读写,各自使用的是不同的引脚!
---华软网友回复---
使用带异步操作参数的读写函数.
同步只需要用在数据缓冲区的访问上,对硬件操作不需要特别的同步.
---华软网友回复---
Rs232好像不行 485是支持同时收发的
---华软网友回复---
串口有读 和写缓存,是可以同时收发的。检查下你读串口传入参数是否有问题。


---华软网友回复---
串口有读 和写缓存,是可以同时收发的;
Rs232及 485都可以的。      
华软声明:本内容来自网络,如有侵犯您版权请来信指出,本站立即删除。