读书人

mscommon控件有关问题 再次提问

发布时间: 2012-02-09 18:22:27 作者: rapoo

mscommon控件问题 再次提问
bytIn = AxMSComm1.Input
oncommon事件每次处理8个字节 超过8个字节 就触发两次oncommon ,这个bytInput()数组 每次8个 我传10个数上来 他分两次放入 那我怎么判断起始位终止位 从而获得数据啊?


我设置了RThreshold = 10 但是会发生丢帧

[解决办法]
你把INPUTLEN属性也设置为1,这样每次INPUT的时候你就知道自己要的是第几位了啊,就可以判断了,用一个变量进行引用加减判断啊
[解决办法]

探讨
我接收成功了 RThreshold设的10 我就把波特率从1200调到9600 接收就不丢数据了
还一种方法是波特率不变 在BytReceived() = strBuff之前 sleep400 也不会丢数据
有哪个大大能给我讲讲mscommon的工作细节 为什么会出现这种情况??????

[解决办法]
不是波特率高容易丢数,是接受和发送不同步引起的丢数,和波特率本身无关。lz加入延时后不丢数是因为发送间隔长。
波特率设定多少?最好接受器和发送器一样。一般设Rthreshold =1,至于接受到的字符串如何处理那是字符串处理问题,不如lz只要那几个数字,只要逐个字符判断是否是数字即可。
[解决办法]
LZ:串口通信的波特率必须上下位机保持一致,如果不一致将无法正确通信.

读书人网 >VB

热点推荐