和单片机的串口通信中,我写的上位机程序,每读串口都要先等2秒,才能读到正解数据,请各位帮着分析一下为什么? 我们每包数据为644个字节,以0xFF0xFF开头,以0XAA0XAA结尾,,如:有10包数据,我用一个循环来做每次发0x020x420x420x03命令开始读一包数据,处理后再发下一个0x020x420x420x03可在发下一次前我要Sleep(2000)才能正确收到一包不然数据就是乱,(数率是9600),请问问题出在哪是我程序读数据慢还是单片机送数据慢还是其它原因? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 是通讯速度慢9600/(8+1)=1700Byte近1/3秒发送完毕,这其间你不能串口写操作 window串口事件驱动,不用Sleep(2000)。设置读数据长度,读完10包数据后停止即可。如要提高速度,将波特率设置为19200或更高。 TO nanjianhui(nan) ( ) :我没有示波器,但如单片机可能用的时间要长一些,因为如果我用计算机连续自发自收只要中间Sleep(10)就行了,请问这种情况如何解决!TO liu_swallow(swallow):我想你可能是对如果我用计算机连续自发自收只要中间Sleep(10)就行了,我想这10MS个等待可能就是,使我不要向串口进行写操作,可为什么与单片机要等那么久,有什么解决方法TO 3jaja(3++输入法) ( ) :我用就是事件驱动,不过现在功能上要求读一包就要停下来处理一下数据再读下一包,现在就是读完第一包后,如不等2000,再向串写一个命令串,所读下一包数据就是错的但我自发自收就不要等这么久,请教如何解决! 有一个问题就是:在读一包数据时,我用的是事件驱动,可是单片机发来的数据会解发几次事件,如每一次发来10字(ComStat.cbInQue=10),下一事件又发来100(ComStat.cbInQue=100),我是根据一包的长度将几次的结果组成一包,请问这种现象对吗为什么不是发一包触发一个事件一次就是接收到一包,数据,是因为单片机慢吗? 请教.如何让一个程序开启另外一个程序? VC 画图不被覆盖 CStringW强制转换问题 对应变量为int型的Edit控件怎么输出为空 在dll中适合弹出对话框吗(用AfxMessageBox或MessageBox函数)? 为什么GetProcAddress总返回NULL 我想做一个CFileDialog,但是我只想选中文件夹(directory),不选中文件,该怎么做啊? 关于长时间循环当中怎么处理windows消息的问题 OpenCV的Mat变量内存问题?高人解答一下! 初级的SDK编程问题! 关于可执行文件的路径 如何设置我的应用程序保存文件的后缀名?
9600/(8+1)=1700Byte
近1/3秒发送完毕,这其间你不能串口写操作
如要提高速度,将波特率设置为19200或更高。
TO 3jaja(3++输入法) ( ) :我用就是事件驱动,不过现在功能上要求读一包就要停下来处理一下数据再读下一包,现在就是读完第一包后,如不等2000,再向串写一个命令串,所读下一包数据就是错的但我自发自收就不要等这么久,请教如何解决!