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.

[参考译文] MSP430FR2355:如何在 RX 激活时发送超过11位的中断? eUSCI

Guru**** 2560390 points


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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/942062/msp430fr2355-how-can-i-send-a-break-longer-than-11-bits----while-rx-active-eusci

器件型号:MSP430FR2355

我需要在 MSP430上回显接收到的从 RX 到 TX 的中断。

是否有办法覆盖 TX 引脚的端口位、同时启用 UART RX 并且不受影响?
或者、指定中断后的中断长度和"停止位"数量?

   开关(__evo_in_range (UCA0IV、USCI_UART_UCTXCPTIFG))
   {
   USCI_NONE 案例:            中断;
   USCI_UART_UCRXIFG 案例:
       IF (UCA0STATW 和 UCBRK){   //如果检测到中断
           数据               = UCA0RXBUF;
           P3OUT ^= BIT6;//触发器 Saleae 分析仪!!!!

           UCA0CTLW1   |= UCMODE0 + UCMODE1;   //自动波特率特性:启用

           UCA0IFG     &=~(UCTXIFG);          // PER 23.3.3.2.1
           UCA0ABCTL   |= UCDELIM0 + UCDELIM1; //自动波特率特性:延长线在中断后的标记
           UCA0CTLW0   |= UCTXBRK;             //信号 UART 中断
           UCA0TXBUF    = 0x00;                //发送中断

       }否则、如果(receiveCount!= BUF_SIZE){
           数据                            = UCA0RXBUF;
           receiveBuffer[receiveCount++]=数据;
       }否则{
           数据= UCA0RXBUF;//           //忽略数据
       }
       UCA0IE |= UCTXIE; //可能要发送的数据、启用 TX 中断
       UCA0IFG |= UCTXIFG;//发送可能的数据,强制 TX 中断实际发生。  WTF?
       中断;
   }

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

    啊、明白了:

               //发送合成中断
               P1SEL0      &=~GPIO_PIN7;
               P1SEL1      &=~GPIO_PIN7;
               P1OUT       &=~GPIO_PIN7;
               P1DIR       |= GPIO_PIN7;
               UCA0TXBUF    = 0x00;  //立即传输到移位寄存器
               UCA0TXBUF    = 0x00;  //将合成中断延长到2个字符时间

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

    感谢您的分享。