baiguo 发表于 2009-5-27 14:57:06

串口通信求助

单片机与PC通信,自定数据帧为起始位(0x80),地址(0x90),命令(0xC0),ID(0),数据1,数据0.------6字节
PC发送上述一帧数据,单片机收到后返回上述一帧数据。
现在情况是用串口调试软件测试时一切正常,当用自己刚写的Labview串口程序时,单片机接收正常,但PC端接收有问题,(有时全为0,有时正确,又或者数据移位)。
请达人们看看,谢谢!(看附件图)

老头子 发表于 2009-5-28 22:29:27

图片大。下载太慢我就不等了,是否串口超时导致显示为0

老头子 发表于 2009-5-28 22:29:34

这个着重考虑

baiguo 发表于 2009-5-30 11:52:46

楼上的达人,再帮我看看呀(留个邮箱或QQ,我给你发过去)
程序框图大致是,主While循环---if条件(真成立)--包含5帧(write串口,延时20ms,read串口,延时2ms,清空buffer)
应该没用到什么超时
刚开始是怀疑buffer没清空--引起数据移位(类似FIFO),看参考例子,没找到带“清空buffer”的,就自己随便写了个。

我是发哥 发表于 2009-5-30 18:10:14

把二个清空缓冲去掉,如果正好有数据被清了,哪肯定超时,为0

baiguo 发表于 2009-5-31 14:31:12

刚开始写时,倒是没加清空缓冲。不过现在测试结果是加不加都一样

cpubbs 发表于 2009-5-31 22:51:39

图片确实太大了,弄成JPG或JPEG会比较小,以前也有不少朋友传BMP的,比较大下载较慢!

cpubbs 发表于 2009-5-31 22:52:15

您不如固定读多少字节试一下!

baiguo 发表于 2009-6-1 10:00:23

重新上传图片

我是发哥 发表于 2009-6-1 10:57:55

case假里面是什么

baiguo 发表于 2009-6-2 12:02:51

空的

3no 发表于 2009-6-2 15:14:40

两个方面的因素

你看看你设置的时候有没有设置停止位,这个可能会有一些影响。

另一个方面是你发下去了,然后延时不够,下面还没把完整的包发回来,上面就开始读取,也可能出状况。你试试把写和读中间的延时加的长一些试试。比如200ms或者500ms。
页: [1]
查看完整版本: 串口通信求助