vb的串口通讯

BosKin 2003-01-02 07:45:19
上次说得不太清楚。我有一个串口通讯程序,是和仪表通讯的,因为这个项目做的时间比较长,那个时候用的是P166的机器,程序在那个机器上好用,后来,厂方要对机器进行升级,换成了P2-400,我把程序及运行环境移植了过去,串口设置都没问题,但就是取上来的数据不正确,取上来的字节数不是多就是少,和仪表通信的协议,收发指令都没有错,这是什么原因?而我把这个程序再放到P166上运行一点问题都没有。我用MSCOMM的字节传输方式,读数据的指令只有五个字节,里面包括仪表编号、读取数据的起始地址、读取的字节数还有停止位。读取的数据是24个字节的数据,加上两个停止位一共是26个字节的数据,仪表的反应时间不超过0.1秒,我在发出读取指令后作了0.5秒的延时,再说每次只读取26个字节的数据,时间应该没有问题,而且每次读完数据后都将输入缓冲区清零了。问题在哪块?谢谢。补充一下,上次现场调试的时候我特意比较了一下两个机器上取上来的数据,发现两者没有什么关系可言,也就是说不是发生了串位。另外,只要取上来的数据长度不对,数据一般就不对,但是不管取上来的数据多长第一个字节的数据都是正确的外,其他字节一般都不对。
...全文
33 1 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
deadog 2003-01-03
  • 打赏
  • 举报
回复
可能还是缓冲大小和时间延迟的协调问题。
你可以先把延迟放大到足够长(比如2s),然后逐渐减小延迟调试。看是否有一个临界。不同机器的缓冲大小也不一样的。

7,785

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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