串口通信求助
单片机与PC通信,自定数据帧为起始位(0x80),地址(0x90),命令(0xC0),ID(0),数据1,数据0.------6字节PC发送上述一帧数据,单片机收到后返回上述一帧数据。
现在情况是用串口调试软件测试时一切正常,当用自己刚写的Labview串口程序时,单片机接收正常,但PC端接收有问题,(有时全为0,有时正确,又或者数据移位)。
请达人们看看,谢谢!(看附件图) 图片大。下载太慢我就不等了,是否串口超时导致显示为0 这个着重考虑 楼上的达人,再帮我看看呀(留个邮箱或QQ,我给你发过去)
程序框图大致是,主While循环---if条件(真成立)--包含5帧(write串口,延时20ms,read串口,延时2ms,清空buffer)
应该没用到什么超时
刚开始是怀疑buffer没清空--引起数据移位(类似FIFO),看参考例子,没找到带“清空buffer”的,就自己随便写了个。 把二个清空缓冲去掉,如果正好有数据被清了,哪肯定超时,为0 刚开始写时,倒是没加清空缓冲。不过现在测试结果是加不加都一样 图片确实太大了,弄成JPG或JPEG会比较小,以前也有不少朋友传BMP的,比较大下载较慢! 您不如固定读多少字节试一下! 重新上传图片 case假里面是什么 空的 两个方面的因素
你看看你设置的时候有没有设置停止位,这个可能会有一些影响。
另一个方面是你发下去了,然后延时不够,下面还没把完整的包发回来,上面就开始读取,也可能出状况。你试试把写和读中间的延时加的长一些试试。比如200ms或者500ms。
页:
[1]