主题中讨论的其他器件: USB2ANY、 MSP430F5528
工具/软件:Code Composer Studio
在 MSP430F5529中、我尝试通过 UART 发送数据、并希望将 RXBUF 中接收的数据传回。 但中断未启用、我无法接收数据。 我尝试了 TI 示例代码、但中断仍然无法正常工作。 了解一些有关接收中断部分的知识将会非常有帮助。
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.
工具/软件:Code Composer Studio
在 MSP430F5529中、我尝试通过 UART 发送数据、并希望将 RXBUF 中接收的数据传回。 但中断未启用、我无法接收数据。 我尝试了 TI 示例代码、但中断仍然无法正常工作。 了解一些有关接收中断部分的知识将会非常有帮助。
Srinivasan、
您忘记对其进行开机自检、或者我看不到它、但您需要在 P4.4和 P4.5上启用辅助功能、否则这些引脚配置为具有输入功能的通用 GPIO。
正如 Winter 所说、您可以检查 MSP430F55xx_uscia0_uart_02.c 代码示例、同时还配置了 P3.3和 P3.4
int main (空)
{
WDTCTL = WDTPW | WDTHOLD; //停止 WDT
P3SEL = BIT3+BIT4; // P3.4、5 = USCI_A0 TXD/RXD
UCA0CTL1 |= UCSWRST; //**将状态机置于重置中**
UCA0CTL1 |= UCSSEL_1; // CLK = ACLK
UCA0BR0 = 0x0D; // 2400 (请参阅用户指南)
UCA0BR1 = 0x00; //
UCA0MCTL |= UCBRS_6+UCBRF_0; //调制 UCBRSx=6、UCBRFx=0
UCA0CTL1 &=~UCSWRST; //**初始化 USCI 状态机**
UCA0IE |= UCRXIE; //启用 USCI_A1 RX 中断
_bis_SR_register (LPM3_bits + GIE); //输入 LPM3、中断被启用
__no_operation(); //用于调试器
}
char data[20];
int i=0;
int main (void)
{
WDTCTL = WDTPW + WDTHOLD; //停止 WDT
P4SEL |= BIT4+BIT5; // P4.4、5 = USCI_A1 TXD/RXD
UCA1CTL1 |= UCSWRST; //**将状态机复位**
UCA1CTL1 |= UCSSEL_2; // SMCLK
UCA1BR0 = 9; // 1MHz 115200 (请参阅用户指南)
UCA1BR1 = 0; // 1MHz 115200
UCA1MCTL |= UCBRS_1 + UCBRF_0; //调制 UCBRSx=1、UCBRFx=0
UCA1CTL1 &=~Ω UCSWRST; //**初始化 USCI 状态机**
UCA1IE |= UCRXIE; //启用 USCI_A1 RX 中断
__bis_SR_register (LPM0_bits + GIE); //输入 LPM0,启用中断
_no_operation (); //对于调试
器}
//回显 RXed 字符,确认 TX 缓冲区已准备就绪#if
defined (__TI_Compiler_version__)|| Defined (__IAR_systems_ICC__)
#pragma vector=USCI_A1_vector
__interrupt void USCI_A1_ISR (void)
#Elif defined (__GNUCI_ COMPUCI_
)(void
)(void USCI_A1_ISR (void)(void)(void)(void)(USCI_I_ COMPLER_A1)(void USC_I_)(void)(void)
#endif
{
switch (__even_in_range (UCA1IV、4))
{
case 0:break; //向量0 -无中断
情况2: //向量2 - RXIFG
while (!(UCA1IFG&UCTXIFG)){ // USCI_A1 TX 缓冲器就绪?
DATA[i]= UCA1RXBUF;
UCA1TXBUF = UCA1RXBUF; // TX -> RXed 字符
i++;
printf ("%c"、data);
fflush (stdout);}
中断;
案例4:中断; //向量4 - TXIFG
默认值:break;
}
您好、Walther、
我正面临着与 Srinivasan 所提到的类似的问题。 我正在使用 MSP430EXPF5529。
为了实现与 GUI 的 UART 通信、我将使用 P4.4和 P4.5、并启用 P4.4和 P4.5的辅助功能。 我正在通过 eZ-USB 连接 MSP430板、 当我从 GUI 向 MSP 发送数据时、我无法看到从 GUI 发送的数据。
我是否缺少任何硬件连接? 我将 TI 的示例代码用于我的测试用例、并附上相同的代码片段供您参考。
提前感谢。
此致、
Vinayak