串口485在发送后Windows和硬件的不一致性

yujia_myc 2006-02-14 02:08:30
在Windows系统中最近发现一个问题,就是串口按485方式发送数据后直接改变电压,接送方就会收到乱码,要是加上20毫秒的延时就正常了。
我不清楚串口在Windows系统编程的时候,数据发送完成后会不会有信号捕捉,如果有,这个信号产生的时候是系统操作完成还是发送缓冲区完成了,请大家一起讨论学习一下,谢谢先。
...全文
203 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
yujia_myc 2006-03-29
  • 打赏
  • 举报
回复
哦,我测试一下
一条晚起的虫 2006-03-29
  • 打赏
  • 举报
回复
你是用异步方式还是同步方式
异步方式,可以在SetCommMask的时候,加上EV_TXEMPTY
同步方式,WriteFile成功了就发送完了
yujia_myc 2006-03-29
  • 打赏
  • 举报
回复
up

顶起来!
美丽海洋 2006-02-24
  • 打赏
  • 举报
回复
你的计算机用缓冲区的writefile 发送数据 比那边接受的时候速度要快的多。
不知道你中间的闲余时间是怎么处理的。
yujia_myc 2006-02-17
  • 打赏
  • 举报
回复
我是打算做485的封装,所以不考虑增加设备
yujia_myc 2006-02-17
  • 打赏
  • 举报
回复
guyue6670:你好!

首先向你表示感谢!我现在就是怀疑串口的缓冲区里面的数据没有发送出去完,我的逻辑是在发送完成后改变485的RTS值,使之有接收功能。我的数据发送是系统调用WriteFile给串口,接收端用的是中断出发接收。

我不知道有没有说清楚,有不清楚的地方请信息我,或者直接E_mail我,我的油箱yacht.mu@163.com

谢谢先
美丽海洋 2006-02-17
  • 打赏
  • 举报
回复
以前我做串口通讯都是利用函数延时一下,再去接受。这样做并没有什么问题出现。
是不是你的485在你没有没有发送完数据时,就进行了转换,这样造成乱码。你降低一下波特率是一下,看是不是有什么效果。
我想知道你的通讯是怎么做的,数据是一个个的发,还是数据一起发送。接受的时候使用中断吗?

Practise_Think 2006-02-16
  • 打赏
  • 举报
回复
使用232,外面用个外置的485转换器
yujia_myc 2006-02-16
  • 打赏
  • 举报
回复
guyue6670:就是改变RTS的电压值。485我们都知道在RTS电压为高的时候才能发送,为低为接受。

请继续关注,谢谢先

zheng1357900(www):目前我的办法比较笨,就是加延时,延时后就可以,但是这个办法不能通用,因为要考虑硬件平台的改变,如果硬件平台改变了就可能因为时钟精振不同产生程序不稳定
谢谢关注,请继续
yujia_myc 2006-02-15
  • 打赏
  • 举报
回复
自己顶一下,这个问题我想有人遇到过,现在我也有方案解决,就是不知道结果,正在测试。

希望大家看了也来顶一下
美丽海洋 2006-02-15
  • 打赏
  • 举报
回复
串口按485方式发送数据后直接改变电压 这是什么意思?
zheng1357900 2006-02-15
  • 打赏
  • 举报
回复
请告诉我你的方案解决办法.
yujia_myc 2006-02-15
  • 打赏
  • 举报
回复
怎么没有朋友顶呀,是不是发的地方不对哦

自己再顶一下

16,551

社区成员

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

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

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