This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

关于MSP430串口通信UART多字节收发的问题



我使用的是EXP430F5529,我想实现的功能是蓝牙与板子之间的汉字传输控制。

手机通过蓝牙已经可以和430正常通信。但是只能实现1个字节的通信。

一个汉字有3个字节,每次从UCA1RXBUF读取到的都是最后一个字节。

所以想请教一下,怎么样才能读取到多个字节。

#pragma vector=USCI_A1_VECTOR
__interrupt void USCI_A1_ISR(void)
{
switch(__even_in_range(UCA1IV,4))
{
case 0:break; // 中断向量 0 - 无中断
case 2: // 中断向量 2 - 接收中断
while (!(UCA1IFG&UCTXIFG));
UCA1TXBUF = UCA1RXBUF;
data_rx = UCA1RXBUF;
break;
case 4:break; // 中断向量 4 - 发送中断
default: break;
}
}

  •  接收到一个字符,先存储在数组里,依次接收三个,根据这三个字符查字库就得到汉字了。

  • dirtwillfly 说:

     接收到一个字符,先存储在数组里,依次接收三个,根据这三个字符查字库就得到汉字了。

    谢谢你的回答。

    这个思路我清楚,只是我不知道应该怎么区分每个字符,因为当触发接收中断以后,UCA1RXBUF里面就只有最后一个字节。

    可以麻烦你回答得更具体一点吗?