idream 发表于 2005-5-23 05:50:50

串口读写不一致?CPUBBS帮帮忙啊

<P> 我用labview通过串口向单片机发送十进制数字10(一个字节数据),单片机能正确接收到,并发回PC,PC也能正确接收到并显示10。在此前提下,存在下面几个问题:</P>
<P>1。PC向单片机发送十进制数字10,11,12,13四个字节数据,PC能正确接收到(从DA输出可判断接收到的数据确是10,11,12,13),并把10重新发回PC,此时PC不能正确接收到,显示185,改用11(或12,13)发回PC,存在同样的问题。如果不向PC发送接收到的数据,而人为在程序中向PC发送20H,PC能正确接收到,并显示32。</P>
<P>2。PC向单片机发送十进制数字10,0,12, 13四字节数据,PC能正确接收到(从DA输出可判断接收到的数据确是10,0,12,13 )    如果在MCU源程序中加进判断接收到的第二个数如果是0的话,则让DA满量程输出10,按此设计设想,当PC发送10,0,12,13时,DA输出应为10,10,12,13,实际输出为10,0,12,13,也就是MCU判断程序不起作用,但程序并没错,难道接收到的第二个数不是0?</P>
<P>3。PC向单片机发送十进制数字10,100,20,255, 四字节数据,PC能正确接收到(从DA输出可判断接收到的数据确是),如果在MCU程序中设置只让100作用于DA,10,20,255不用,按此设想,DA输出应为100,但实际输出为20,也就是20作用于DA,MCU源程序并没错,是谁的错?</P>
<P>这几个问题困扰我一个多周了,麻烦各位大侠出手相球,感激不尽!</P>

cpubbs 发表于 2005-5-23 17:10:32

数据格式发送正确的情况下,要注意一下单片机程序里面的细节,还有PC机这边的数据转换正确吗?若是单片机程序里面一不小心,弄错了一点点细节,可能会出错的,建议你在程序上面多放一些串口发送程序在里面,随时把一些数据发回来以供观察用,看看是哪个地方出了差错!不知道你有仿真器吗?有仿真器可以调试串口的哪种会方便很多的,不过我自己的仿真器也不能调试串口的,就是通过前面的办法来调试的!
页: [1]
查看完整版本: 串口读写不一致?CPUBBS帮帮忙啊