串口通讯问题 我通过串口接收51单片机上发来的信息,不知道为什么最多只能接收8个数字,请问如何接收8个以上数字? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 很简单,你设置一下InputLen长度为你想要的长度,一般也可以设置为0,即全部接受“接收缓冲区”中的数据。还有一个原因,那就是你的延时不够长,一般来说9600bps的通讯速率,要求每个字节大约停顿1.2-1.5ms,譬如你接收的字节在20个,则最好停顿25个ms。注意:串口通信的等待中,不要用DoEvents,请用Sleep或GetTickCount之类的空循环,否则可能造成通讯的阻塞和程序中断!! 反对Gutta(冯大狂) 的方法。串口通讯的方法建议:与外部设备的通讯遵循外部设备的通讯协议才是最终解决问题的办法。通讯协议中一定有可以表示协议起始和停止的标志。因此,不管用什么方法接收数据,一定要等到接收到停止码才算是接收完整。例如:要接收一段形如“[00][00][A][B][C][D][E][F][G][H][I][J][00][01]”的数据。你可能第一次只收到了“[00][00][A][B][C][D][E]][F][G][H][I]”,你必须等到下一次收到后面的数据并判断出来结束标志[00][01]才算完整。当然,你很可能在第二次收到的数据是“[J][00][01][00][00][A][B][C][D][E][F][G][H]”,这时,你可以把后面的这部分“[00][00][A][B][C][D][E][F][G][H]”暂时保存,等到下一次收到数据后一并处理。以上方法适用于所有串口通讯方式。通讯方式建议:1、 串口发送接收数据频率较高时,可以采用定时器;2、 频率较低时,采用串口中断方式比较好。 怎么让两个程序同时执行 vb关于文本文件操作 100分磕头跪求 access 查询问题。 waveInOpen 怎么选择是声卡 还是 麦克? 如何对已经在WORD录制的宏进行处理,而将其中的代码做为条件在Vb中使用 VB开发IIS程序的问题(没多少分了,望见谅) 一个关于MPEG的问题,急急急,在线等待!!! 谁有相对差分法的代码? 用过ExPropList控件的朋友请进来!! 如何判断另一台机器上的数据表是否打开?急用,跟贴有分 怎样检测与SQL数据库的连接是否正常??/ 怎样设置出DirListBox的水平滚动条(20分)
你可能第一次只收到了“[00][00][A][B][C][D][E]][F][G][H][I]”,你必须等到下一次收到后面的数据并判断出来结束标志[00][01]才算完整。
当然,你很可能在第二次收到的数据是“[J][00][01][00][00][A][B][C][D][E][F][G][H]”,这时,你可以把后面的这部分“[00][00][A][B][C][D][E][F][G][H]”暂时保存,等到下一次收到数据后一并处理。以上方法适用于所有串口通讯方式。通讯方式建议:1、 串口发送接收数据频率较高时,可以采用定时器;
2、 频率较低时,采用串口中断方式比较好。