您现在所在的是:

串口通信

回帖:4个,阅读:2185 [上一页] [1] [下一页]
966
jiechen111
文章数:10
年度积分:50
历史总积分:966
注册时间:2004/7/6
发站内信
发表于:2004/9/8 14:58:00
#0楼
原来串口中关于波特率的设置采用的是在串口中定义一个缓冲区,然后在串口的缓冲区里设置波特率的,但是现在公司制定新的modbus规约时为波特率也制定了一个101H通信地址,我通过调用writeuintdata(自己编的一个收发数据,配置串口的动态库的函数)来改写下位机波特率时通信中断,我想这肯定是下位机的波特率改变时,我这边上位机的串口缓冲区里的波特率还没改过来的原因。上位机的波特率是在缓冲区里设置的和通信地址无关的啊,我该用什么方法把串口缓冲区和下位机通信地址对应起来,达到改变下位机波特率时,上位机波特率也跟着一起变化;上位机串口缓冲区里的波特率变化时,下位机也跟着变化?麻烦各位串口方面的高手给我一点建议,谢谢!
10912
yanli7234 版主
文章数:3035
年度积分:49
历史总积分:10912
注册时间:2002/11/8
发站内信
2011论坛贡献奖
发表于:2004/9/8 15:15:00
#1楼
波特率和缓冲区有什么关系?基本概念不清楚。
只要保持进行通讯的两个(几个)设备之间的波特率相同,就能正常通讯。改变波特率应该去改变控制字,和缓冲区无关。
国人当自强,共同努力,抵制日货。
906
waynebjcn
文章数:3
年度积分:50
历史总积分:906
注册时间:2004/9/8
发站内信
发表于:2004/9/8 15:48:00
#2楼
你是不是这样的,在每次往某个下位机里写东西之前,都要重新用初始化一遍串口(就是你的动态库函数),而初始化串口的时候用到的是缓冲区里的内容,而你讲的缓冲区并不是串口的真正的发送缓冲区。如果我的理解没有错的话,你可以将你的缓冲区加上一部分内容,就是下位机的地址,这个地址和对应的波特率关联起来,这样你在往某个地址发数据之前,初始化的就是其关联的缓冲区里的内容(就是不同的波特率、数据长度、校验位等)。
如果我理解的不对,就当我白说。
966
jiechen111
文章数:10
年度积分:50
历史总积分:966
注册时间:2004/7/6
发站内信
发表于:2004/9/17 10:00:00
#3楼
waynebjcn  说的还是比较对的,现在问题解决了,谢谢!
916
yinghzhang
文章数:5
年度积分:50
历史总积分:916
注册时间:2004/1/1
发站内信
发表于:2004/9/24 16:27:00
#4楼
可以留一个您的联系方式吗?小弟近来做modbus通信,焦头烂额,不知高手能否指点一二??
yinghzhang@126.com

关于我们 | 联系我们 | 广告服务 | 本站动态 | 友情链接 | 法律声明 | 非法和不良信息举报

工控网客服热线:0755-86369299
版权所有 工控网 Copyright©2024 Gkong.com, All Rights Reserved

62.4004