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.

[参考译文] MSP430F1611:在TelosB上使用两个UART端口

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/665169/msp430f1611-utilising-two-uart-ports-on-telosb

部件号:MSP430F1611
主题中讨论的其他部件: MSP430FR4133

尊敬的各位:

我目前正在使用TelosB(MSP430f1611),并尝试使用主板上可用的两个UART端口。

我已正确配置了一个UART端口,它可以通过PuTTY与用户进行传输和接收。 现在我正在尝试配置另一个,这应该很容易,但我有点纠结,因为我正在尝试修改提供给我的代码,该代码形成了与外部设备的串行通信。

我已成功完成了UART配置的初稿,但由于给定的代码是为MSP430fr4133编写的,因此需要为msp430f1611适当地替换某些命令。 例如

void dn_UART_txByte (uint8_t字节){
while (!(UCA0IFG & UTXIFG0)); //等待TX缓冲区就绪
UCA0TXBUF =字节; //发送字节
} 

现在,我已将代码修改为下面 的,适用于MSP430f1611。  这是否正确?

void dn_UART_txByte (uint8_t字节){
while (!(IFG1 & UXIFG0)); //等待TX缓冲区就绪
U0TXBUF =字节; //发送字节
}

谢谢你

此致

Yong Kim

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    这看起来是正确的,但(假定)打字错误除外:
    > while (!(IFG1 & UXIFG0)); //等待TX缓冲区就绪
    应该是
    > while (!(IFG1 & UTXIFG0)); //等待TX缓冲区就绪
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    感谢您的帖子。

    您是否可以随时检查此零件?

    #pragma vector=USART0RX_vector
    __interrupt void usart0_Rx (void){//
    将字节移交给IPMT模块
    dn_UART_vars.IPMT_UART_rxByte_CB(U0RXBUF);
    } 

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    这看起来不错,假设"_CB"函数可以满足您的需要。 读取U0RXBUF将为您清除RXIFG。