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.

[参考译文] MSP430F5529:UART 接口

Guru**** 2555870 points
Other Parts Discussed in Thread: MSP430F5529, MSP-EXP430F5529LP

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/598547/msp430f5529-uart-interfacing

器件型号:MSP430F5529
主题中讨论的其他器件: MSP-EXP430F5529LP

大家好、  

我尝试将 UART 与 msp430f5529连接、但在串行监视器中没有任何输出。我已将代码粘贴到下面。请仔细查看此问题。

#include

void UART_string (char *p);

int main (空)

 WDTCTL = WDTPW + WDTHOLD;         //停止 WDT

 P3SEL = BIT4+BIT3;             // P3.4、5 = USCI_A0 TXD/RXD

 UCA0CTL1 |= UCSWRST;            //**将状态机置于重置中**

 UCA0CTL1 |= UCSSEL_2;           // SMCLK

 UCA0BR0=6;                // 1MHz 9600 (请参阅用户指南)

 UCA0BR1=0;                // 1MHz 9600

 UCA0MCTL = UCBRS_0;

                      //过采样

 UCA0CTL1 &=~UCSWRST;           //**初始化 USCI 状态机**

 

 UART_STRING ("印度 Edgate Technologies 公司");

空 UART_string (char *p)

while (* p)

UCA0TXBUF=*p;

while (UCA0STAT 和 UCBUSY);

P++;

#include void UART_string (char *p);int main (void){ WDTCTL = WDTPW + WDTHOLD;         //停止 WDT P4SEL = BIT4+BIT5;             // P3.4、5 = USCI_A0 TXD/RXD UCA0CTL1 |= UCSWRST;            //**将状态机复位** UCA0CTL1 |= UCSSEL_2;           // SMCLK UCA0BR0 = 6;                // 1MHz 9600 (请参阅用户指南) UCA0BR1 = 0;                // 1MHz 9600 UCA0MCTL = UCBRS_0;//+ UCBRF_13 + UCOS16; //模块化 UCBRSx=0、UCBRFx=0、                       //过采样 UCA0CTL1 &=~UCSWRST;           //**初始化 USCI 状态机**// UCA0IE |= UCRXIE;             //启用 USCI_A0 RX 中断
 //_ bis_SR_register (LPM0_Bits + GIE);   //输入 LPM0、启用中断// _ no_operation ();             //对于调试器 UART_string ("Edgeate Technologies India ");}
void UART_string (char *p)
while (*p)UCA0TXBUF=*p;while (UCA0STAT&UCBUSY);
P++;

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我错误地粘贴了错误的代码。新代码如下所示-
    #include
    void UART_string (char *p);
    int main (空)

    WDTCTL = WDTPW + WDTHOLD; //停止 WDT
    P3SEL = BIT3+BIT4; // P3.4、5 = USCI_A0 TXD/RXD
    UCA0CTL1 |= UCSWRST; //**将状态机置于重置中**
    UCA0CTL1 |= UCSSEL_2; // SMCLK
    UCA0BR0=6; // 1MHz 9600 (请参阅用户指南)
    UCA0BR1=0; // 1MHz 9600
    UCA0MCTL = UCBRS_0;
    //过采样
    UCA0CTL1 &=~UCSWRST; //**初始化 USCI 状态机**

    UART_STRING ("印度 Edgate Technologies 公司");


    空 UART_string (char *p)


    while (* p)

    UCA0TXBUF=*p;
    while (UCA0STAT 和 UCBUSY);

    P++;



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

    您需要在 UCA0MCTL 寄存器中设置 UCBRF_13和 UCOS16、否则您将不会按预期以9600波特传输数据。 我建议您查看代码示例 MSP430F55xx_uscia0_UART_04.c 并进一步调试您的程序、以确保 UCA0TXBUF 已填充预期字符。

    此致、
    Ryan
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我已经完成了 MSP430F55xx_uscia0_UART_04.c 程序、但仍然没有获得任何输出。 程序不回显。
    我已签入 Tera Term 和 Hyperterminal。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    接下来、您会遇到硬件连接问题或在代码中使用错误的 USCI 模块。 如果使用 MSP-EXP430F5529LP、请注意反向通道 UART 在 P4.4/P4.5上使用 UCSI_A1、并且必须相应地移植代码示例。

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

    SIR 我已将 P3.3和 P3.4从外部连接到仿真器部分中的 TXD 和 RXD 引脚。 现在我的代码运行正常。

    谢谢主席先生