串口通信: 如何实现全双工,就是同时对一个口进行读和写?

seedundersnow 2001-07-18 09:37:27
...全文
2232 33 打赏 收藏 转发到动态 举报
写回复
用AI写文章
33 条回复
切换为时间正序
请发表友善的回复…
发表回复
vcsongs 2001-07-25
  • 打赏
  • 举报
回复
只要把打开端口与使用端口分开. 有何麻烦之有? ...
seedundersnow 2001-07-25
  • 打赏
  • 举报
回复

"读/写线程与打开端口的线程共享端口句柄的问题。"

没有问题. 我是在同一个线程处理的. 如果在不同的线程,需要注意的是同步的问题,主要是句柄/端口设置.

我说的麻烦,也就是指在不同的线程处理读和写,端口句柄的同步问题. 读和写的数据缓冲区本来就是分开的, 没有互斥与同步问题.

jfzsl 2001-07-23
  • 打赏
  • 举报
回复
tt
xiterator 2001-07-23
  • 打赏
  • 举报
回复
以及还有收发数据缓冲区线程间的互斥与同步问题。
xiterator 2001-07-23
  • 打赏
  • 举报
回复
seedundersnow(一下子打死七个Virtual的FANS)你所说的麻烦,是不是指读/写线程与打开端口的线程共享端口句柄的问题。
xiaohedou 2001-07-22
  • 打赏
  • 举报
回复
gz
WorldCreater 2001-07-21
  • 打赏
  • 举报
回复
我也想听听,
vochen 2001-07-21
  • 打赏
  • 举报
回复
关注
seedundersnow 2001-07-21
  • 打赏
  • 举报
回复

改变端口,就是本来用的是COM1,现在用户有选择了COM2....

seedundersnow 2001-07-21
  • 打赏
  • 举报
回复

改变端口,会有一些同步的工作要做,是可以的.
我是说我怕麻烦,没有别的意思(小人懒虫一条....)

ximuwa 2001-07-20
  • 打赏
  • 举报
回复
特别关注!
neomeng 2001-07-19
  • 打赏
  • 举报
回复
同时读写应该是没有什么问题啊。
wz2001 2001-07-19
  • 打赏
  • 举报
回复
在线层里使用是同样的,只要不连续发送大量的数据,抽出点时间用Clearcommerror()扫描一下端口就可以了。比如,发送已数据包的形式一帧一帧的发,那么,扫描端口有无接收数据到达是很容易实现的。
seedundersnow 2001-07-19
  • 打赏
  • 举报
回复

seedundersnow@sina.com,thanks!

vcsongs 2001-07-19
  • 打赏
  • 举报
回复
your email?
seedundersnow 2001-07-19
  • 打赏
  • 举报
回复

vcsongs(vcsongs):
可否看一下您的代码?

vcsongs 2001-07-19
  • 打赏
  • 举报
回复
串口是不是全双工的工作不是看你的程序如何写. 而是看硬件上的UART是不是支持这个功能...
现在PC上的16650都是全双工的芯片.

在程序中可以用两个线程分别读写端口. 这样它们的工作没有顺序要求就是全双工的.
至于read/writefile的参数overlapped只是是否同步/异步的读写... 与题无关(因为串口的数据量一般不大)
seedundersnow 2001-07-19
  • 打赏
  • 举报
回复

davidprg():
怎么用? 请指教,谢了先

ahr 2001-07-19
  • 打赏
  • 举报
回复
用SetCommTimeouts() 可以设置 读写 的超时 (独立的)
davidprg 2001-07-19
  • 打赏
  • 举报
回复
呵呵。

当然是用不同的OVERLAPPED。

想知道怎么用吗?

不过OVERLAPPED所谓的重叠异步和同步差不了多远的。

实际处理有时仍要等处理完OK才返回。
加载更多回复(13)
课程背景Modbus 协议是工业自动化控制系统中常见的通信协议,协议的全面理解是个痛点。本课程主讲老师集10多年在Modbus协议学习、使用中的经验心得,结合当前物联网浪潮下Modbus协议开发的痛点,推出这套面向Modbus 协议初学者的课程。本课程不同于以往市面课程只是协议讲解无实现代码,而是采用讲解与实践并重的方式,结合STM32F103ZET6开发板进行手把手编程实践,十分有利于初学者学习。涵盖了学习者在Modbus协议方面会遇到的方方面面的问题,是目前全网首个对Modbus协议进行全面总结的课程。课程名称   协议讲解及实现>>课程内容1、Modbus 协议的基础。2、Modbus协议栈函数编程实现。3、Modbus协议在串行链路编程实现。4、Modbus协议在以太网链路编程实现。5、常见问题的解决方法。带给您的价值通过学习本课程,您可以做到如下:1、全面彻底的理解Modbus协议。2、理解在串行链路,以太网链路的实现。3、掌握Modbus协议解析的函数编程方法,调试工具的使用。4、掌握多个串,网同时运行同一个Modbus协议栈的方法。5、掌握Modbus协议下,负数,浮点数等处理方法。讲师简介许孝刚,山东大学工程硕士,副高职称,技术总监。10多年丰富嵌入式系统开发经验,国家软考“嵌入式系统设计师”。2017年获得“华为开发者社区杰出贡献者”奖励。

16,472

社区成员

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

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

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