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.

[参考译文] MSP430FR2422:TS430RHL20

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/945380/msp430fr2422-ts430rhl20

器件型号:MSP430FR2422

主席先生,我还需要一个帮助。 我已将 msp430fr2422套件与 CP210x USB 连接到 UART 转换器。 但我无法通过 cp210转换器传输和接收数据。

硬代码附件下面。 请纠正此问题。

 

WDTCTL = WDTPW | WDTHOLD;

 

  P2DIR = BIT3;

  P2OUT &=~BIT3;

  PM5CTL0 &=~LOCKLPM5;

 

  UARTA0_PortPinSelection ();

  TimerA0_Configuration ();

  UARTA0_Configuration ();

 

    时间戳= LocalTime;

    PrintfTimeStamp = LocalTime;

  while (1)

  {

      TIMERA0_CLR;

      _bis_SR_register (LPM0_bits | GIE);

 

      if (LocalTime -时间戳>= 2000)

      {  int i;

          TerminalValue[0]= TvsVoltage;

          TerminalValue[1]= TvsCurrent;

 

        // printf_USART2 ("串行");

          for (i =0;i<2;i++)

          SendthSequenceofbyte (TerminalValue[i]);

          时间戳= LocalTime;

      }

 

        _delay_cycles (500);

  }

 

UARTA0_PortPinSelection ()

      P2SEL1 &=~BIT0;

      P2SEL0 |= BIT0;

      P2SEL1 &=~ BIT1;

      P2SEL0 |= BIT1;

UARTA0_Configuration ()

  //配置 UART

    UCA0CTLW0 |= UCSWRST;                    //将 eUSCI 置于复位状态

    UCA0CTLW0 |= UCSSEL_ACLK;

    //波特率计算

    UCA0BR0 = 3;                            // 32768/9600 = 3.4

    UCA0MCTLW = 0x9200;                      // 1000000/115200 - INT (1000000/115200)=0.68

                                              // UCBRSx 值= 0xD6 (请参阅 UG)

    UCA0BR1=0;

    UCA0CTLW0 &=~UCSWRST;                  //初始化 eUSCI

    UCA0IE |= UCRXIE;                        //启用 USCI_A0 RX 中断

    UCA0IFG &=~ UCRXIFG;

 

  // UCA0STATW |= UCLISTEN;                //回路

 

TimerA0_Configuration ()

      TA0CCTL0 |= CCIE;                            //启用 TACCR0中断

      TA0CCR0 = 1000;

      TA0CTL = tassel_SMCLK | MC__UP | TACLR;    // SMCLK、UP 模式

void SendthenceSequenceofbyte (字符数据速率)

 

                UCA0TXBUF =(数据传输&(整型无符号整型) 0x01FF);

                while (!(UCA0IFG & UCTXIFG));

 

  

 

#pragma vector = TIMER0_A0_vector

_interrupt void Timer_A (void)

      localtime++;

 

      _BIC_SR_REGISTER_ON_EXIT (LPM0_BITS);

 

#pragma vector=EUSCI_A0_Vector

_interrupt void EUSCI_A0_ISR (void)

  静态 int 计数;

      UCA0IFG &=~ UCRXIFG;          //清除中断

 

      数据=(UCA0RXBUF &(整型无符号整型) 0x01FF);

      P2OUT ^= BIT3;

      if (flag ==0)

      {

          TempDta =(char)数据;

          flag = 1;

      }

  if (flag ==1)

  {

      if (计数< 6)

      {

          RXTemp[count]= TempDta;

          count++;

          flag =0;

      }

  }

      if (计数>=6)

      {

          计数= 0;

          flag=0;

      }

    //__BIC_SR_REGISTER_ON_EXIT (LPM0_Bits);

 

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

    您好,Mutharagan,

    您好像在 UARTA0_PortPinSelection ()中为 UART 选择端口引脚 P2.0和 P2.1。 这需要设置 USCIARMP = 1。 请参阅用户指南(https://www.ti.com/lit/pdf/slau445)中的寄存器说明。  这是寄存器 SYSCFG3的一部分。 您将在部分中找到它  1.16.1.4.

    请参阅器件数据表(www.ti.com/.../msp430fr2422)  第6.10.7节增强型通用串行通信接口(eUSCI_A0、eUSCI_B0)、表 6-11。 eUSCI 引脚配置。 要在 P2.0和 P2.1上使用 eUSCI_A0 UART 引脚、 需要 将 USCIARMP 设置为1。 否则、UART 默认为引脚 P1.4和 P1.5

    Srinivas