为什么我的MSP430 串口UART0的接收到了 串口UART0自己的发送的数据?
我的MSP430单片机的U0接的是GPRS模块,U0向GPRS模块发送数据(通过GPRS与外界联系),出现了一个让人很困惑的现象,串口0的接收缓存和数组里面收到了U0自己往外发的数据,也就是闹了乌龙,自己的向外发的数据,竟然有时候出现在了了自己的缓存里面. 很是不解。望高手指点。
接收函数:
#pragma vector=USCI_A0_VECTOR
__interrupt void USCI_A0_ISR()
{
UART0_RX_BUF[UART0_RX_Len++] = UCA0RXBUF;
UCA3TXBUF=UCA0RXBUF;//把接收的数据发到U3便于观察(LCX注)
ReadUART0_new=Read_Cycle;
if(UART0_RX_Len >= UART0_RX_MAXLen)
{
UART0_RX_Len = 0;
memset(UART0_RX_BUF,0,UART0_RX_MAXLen);
}
}
[解决办法]
中断里有没有必要判断一下,当前产生的中断,是接收中断?还是发送中断呢?
:)
另外,管脚有没有粘连?
[解决办法]
GPRS模块是不是开了回显。
如果开了回显,比如串口向GPRS模块发送AT,GPRS模块会返回一个AT。
先通过串口发送一个ATE0命令给GPRS模块关掉回显试试。