本帖最后由 阿比安吉 于 2015-1-30 14:07 编辑
小弟现在使用STM32F407的串口传输数据,程序设定是每次给单片机通过串口发送一个指令之后单片机返还一个数组。将STM32的TX和RX、GND三根线和串口模块的RX、TX、GND三根线相连,出现了错误,具体情况是每次发送完指令之后会返还一个0x00,之后才是返还设定好的数组。然后小弟又换了另一个串口模块,这次发送指令之后不会返还0x00,但是返还的数组有一定误码,比如0x90变成0xD0。程序中设定的是只有收到正确指令才会返回数据,所以应该发送过程中没有出现误码,应该是返还数据的时候出现了误码。我试过这两个串口模块相连然后接电脑,传输也并没有什么错误...
而由于这个STM32F407最后的TX和RX是要与一个CC2530透明串口模块的RX、TX相连构成无线通信的,因此找了一个已经验证过正确性的CC2530透传模块,将两者相连之后,接收端的2530透传模块会间断性的收到0x00,发送指令也不会返还数据。同事中有人告知有可能是高阻状态的串口引脚会出现这种情况,于是使用了一个电阻将TX拉高,RX拉至地端,此时通过CC2530发送指令后可以收到正确的数组,但是会在收到的数组之后多收到一个0x00 而且这时使用之前的两个串口出现同样的问题,会多收到一个0x00....
请问各位大神有人知道这个是什么情况吗?不胜感激!下列是STM32周边的电路原理图
|