读书人

mscomm控件为何有时不能接收数据,该如

发布时间: 2012-01-31 21:28:41 作者: rapoo

mscomm控件为何有时不能接收数据
我的程序在打开串口后,有时候会无法接受数据,我用debug.print mscomm1.inbuffercount查看了一下,缓存区里字符为0,此时端口确实是打开的,而且单片机也确实在发送数据,但就是不能接收,然后把串口关掉,再打开,又可以接收数据了,不知道是何故.而且我试了一下,用别的程序,也接收这个单片机数据,把settings设置成 [4800,n,8,2]就不会出现那种出现,而一旦设置成[57600,n,8,1]就会出现跟我的程序一样状况,声明一下,波特率设置应该没问题,因为数据读取是正确的,而且用串口工具调试都能正常读取,各位大虾有碰到过这个情况吗?
另外settings[57600,n,8,1]的停止位1占用57600中的一位吗?或者说波特率57600每秒钟就发送57600个有效位呢?


[解决办法]
以下仅供参考
  异步通信的信息格式如下边的表所示

起始位 逻辑0 1位
数据位 逻辑0或1 5位、6位、7位、8位
校验位 逻辑0或1 1位或无
停止位 逻辑1 1位,1.5位或2位
空闲位 逻辑1 任意数量

  注:表中位数的本质含义是信号出现的时间,故可有分数位,如1.5。

异步通信的速率:若9600bps,每字符8位,1起始,1停止,无奇偶,则实际每字符传送10位,则960字符/秒。

读书人网 >VB

热点推荐