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.

[参考译文] MSP-EXP430FR5994:MSP-EXP430FR5994

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/1035404/msp-exp430fr5994-msp-exp430fr5994

器件型号:MSP-EXP430FR5994
主题中讨论的其他器件:MSP430FR5994

您好!  

我尝试将 char 从 MSP430fr5994 MCU 发送到 CCS 终端、代码如下所示。 但我看不到终端上的字符。 请提供帮助。

终端设置如图所示。

#include


int main (void){

WDTCTL |= WDTPW | WDTHOLD;
UCA1CTLW0 |= UCSWRST;
UCA1CTLW0 |= UCSSEL_SMCLK;
UCA1BRW=8;
UCA1MCTLW |= 0xD600;

P6SEL1 &=~BIT0;
P6SEL0 |= BIT0;

PM5CTL0 &=~ LOCKLPM5;
UCA1CTLW0 &=~UCSWRST;
char a='a';
int i;
while (1){

UCA1TXBUF = A;
对于(i=0;i<1000;i++){}

返回0;

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

    您是否使用连接到计算机的 USB 并通过这种方式使用 UART? 如果是、那么您需要使用反向通道 UART、即 UCA0。 该 UART 线通过 USB 连接。

    • 您选择的引脚(6.0)与 UCA3TXD 相连、而不是像您一样与 UCA1TXD 相连。 将 P6SEL 器件更改为 UCA1TXD 器件、但如果您使用 USB 连接到 PC、我建议使用反向通道 UART (UCA0)。
      • //FOR UCA3TXD
        //P6SEL1 &= ~BIT0;
        //P6SEL0 |= BIT0;
        
        //FOR UCA1TXD
        P2SEL1 |= (BIT5);
        P2SEL0 &= ~(BIT5);
        
        //FOR UCA0TXD
        //P2SEL1 |= (BIT0);
        //P2SEL0 &= ~(BIT0);
    • 我看不到时钟被设置、因此我无法评论波特率是否正确

    以下是一些其他资源可帮助您、 eUSCI_A3 EchoUART AcademyMSP430FR5994 Launchpad 用户指南 第2.2.4节介绍了我提到的反向通道 UART。

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

    // UCOS16 =0,UCBRFx=未使用,UCBRS=XD6,这就是为什么“UCA0MCTLW |= 0xD600;”,所以 BR=115200

    我 也尝试过端口2的 UCA0、但结果相同。 我还没有数据。

    ----------------------------------------------------------------

    #include
    int main (void){

    WDTCTL |= WDTPW | WDTHOLD;
    UCA0CTLW0 |= UCSWRST;
    UCA0CTLW0 |= UCSSEL_SMCLK;
    UCA0BRW=8;
    UCA0MCTLW |= 0xD600;// UCOS16 =0、UCBRFx=未使用、UCBRS=XD6、这就是为什么" UCA0MCTLW |= 0xD600;"所以 BR= 115200

    //对于 UCA0TXD
    P2SEL1 |=(BIT0);
    P2SEL0 &=~(BIT0);
    PM5CTL0 &=~ LOCKLPM5;
    UCA0CTLW0 &=~UCSWRST;

    int i;
    while (1){

    UCA0TXBUF ='A';
    对于(i=0;i<1000;i++){}

    返回0;

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

    顺便说一下、感谢您的回答和建议、Yeh 我尝试通过 USB 将数据从 MSP430FR5994 MCU 发送到 CCS 终端。 我已经尝试过 UCA0、A1、A3、但都一样。 我无法接收数据...

    下面的代码还应在每次通过中断按下按钮(P5.5)时发送数据。 但它也不起作用。  

    被卡住了... 有什么想法吗???

    (二

    #include

    字符消息[]="Hello Mf";
    unsigned int 位置;

    int main (void){

    WDTCTL |= WDTPW | WDTHOLD;
    UCA0CTLW0 |= UCSWRST;
    UCA0CTLW0 |= UCSSEL_SMCLK;
    UCA0BRW=8;
    UCA0MCTLW |= 0xD600;// UCOS16 =0、UCBRFx=未使用、UCBRS=XD6、这就是为什么" UCA0MCTLW |= 0xD600;"所以 BR= 115200

    //切换设置
    P5DIR &=~ BIT4;
    P5REN |= BIT5;
    P5OUT |= BIT5;
    P5IES |=BIT5;

    //对于 UCA0TXD
    P2SEL1 |=(BIT0);
    P2SEL0 &=~(BIT0);

    PM5CTL0 &=~ LOCKLPM5;
    UCA0CTLW0 &=~UCSWRST;
    //启用 IRQ
    P5IE |=BIT5;
    P5IFG &=~ BIT4;
    _enable_interrupt ();

    while (1){}

    返回0;

    //pragma 设置
    #pragma vector = PORT5_vector
    _interrupt void ISR_PORT5_SW (void){
    位置=0;
    UCA0IE |= UCTXIE;
    UCA0IFG &=~ UCTXIFG;
    UCA0TXBUF =消息[位置];

    P5IFG &=~ BIT4;


    #pragma vector = EUSCI_A0_Vector
    _interrupt void ISR_EUSI_A0 (){
    if (position=sizeof (Message)){
    UCA0IE &=~ UCTXIE;
    }否则{
    位置++;
    UCA0TXBUF=消息[位置];

    UCA0IFG &=~ UCTXIFG;

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

    是的、我花了很多小时、但终于找到了。 我不能不知道。 我只花了一天的时间

    它不适用于" WDTCTL |= WDTPW | WDTHOLD;"

    虽然它与"WDTCTL = WDTPW | WDTHOLD"完美配合使用、

    啊啊啊