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.

[参考译文] MSP430F5510:UART 不发送、接收中断不使用示例代码触发

Guru**** 2581345 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/613988/msp430f5510-uart-does-not-transmit-receive-interrupt-does-not-trigger-with-example-code

器件型号:MSP430F5510
主题中讨论的其他器件:MSP-FET430UIF

我在  USB 记忆棒上使用 Olimex 开发板 www.olimex.com/.../和 Silicon Labs CP2102桥。 我使用 CCS 6.2.0、RealTerm 通过串行端口发送、并使用 TI MSP-FET430UIF 调试接口。 电路板由调试器供电。

我无法在上面运行示例 UART 代码(MSP430F55xx_uscia0_UART_01.c)。 我已经尝试过原始代码并尝试修改波特率。 接收中断永远不会被触发。 我已经在 PC 的 TX 上放置了一个示波器、因此我可以清楚地看到它正在发送数据。 我已经将 TX 从 PC 连接到 MSP430上的 RX、反之亦然。 我已将接地从电桥连接到开发板接地。 MSP430 TX 仅为3.3V。

我不知道如何在调试中取得进展。  

以供参考。 我更改了 TX/RX 引脚以匹配 f5510。

#include 

int main (void)
{
WDTCTL = WDTPW + WDTHOLD; //停止 WDT

P4SEL |= BIT4+BIT5; // P4.4、5 = USCI_A0 TXD/RXD
UCA0CTL1 |= UCSWRST; //**将状态机复位**
UCA0CTL1 |= UCSSEL_2; // SMCLK
UCA0BR0 = 9; // 1MHz 115200 (请参阅用户指南)
UCA0BR1 = 0; // 1MHz 115200
UCA0MCTL |= UCBRS_1 + UCBRF_0; //调制 UCBRSx=1、UCBRFx=0
UCA0CTL1 &=~Ω UCSWRST; //**初始化 USCI 状态机**
UCA0IE |= UCRXIE; //启用 USCI_A0 RX 中断

__bis_SR_register (LPM0_bits + GIE); //输入 LPM0,启用中断
_no_operation (); //对于调试
器}

//回显 RXed 字符,确认 TX 缓冲区已准备就绪#if
defined (__TI_Compiler_version__)|| Defined (__IAR_systems_ICC__)
#pragma vector=USCI_A0_vector
__interrupt void USCI_A0_ISR (void)
#Elif defined (__GNC_ISR_)(
void

)#USCI_A0 (void)(void USCI_0_A0)(void)(void)(void)#USCI_ISR (void)
#endif
{
switch (__even_in_range (UCA0IV、4))
{
case 0:break; //向量0 -无中断
情况2: //向量2 - RXIFG
while (!(UCA0IFG&UCTXIFG)); // USCI_A0 TX 缓冲器就绪?
UCA0TXBUF = UCA0RXBUF; // TX -> RXed 字符
中断;
案例4:中断; //向量4 - TXIFG
默认值:break;
}

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    MSP430-5510STK 的 P4.4/TXD 和 P4.5/RXD 连接到 UEXT 连接器、并使用 UCA1、而不是 UCA0。 在48引脚 RGZ 封装中、P3.3/P3.4甚至不可用于 UCA0访问。 您需要使用反向通道 UART 硬件(如 eZ-FET)或 USB 外设与 PC 进行通信。

    此致、
    Ryan
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    哇哦。 我花了太多的时间尝试解决这个问题、我直接使用了错误的 UART 通道。 我将 A0替换为 A1、现在一切正常。 谢谢!