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.

[参考译文] CCS/MSP430F5528:CAN#39;t CAPTURE UART 接收中断

Guru**** 2585245 points


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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/745456/ccs-msp430f5528-can-t-capture-uart-receive-interruption

器件型号:MSP430F5528

工具/软件:Code Composer Studio

大家好、我使用 tdc1000-tdc7200evm 通过 GPIO3\GPIO4中的 UART 与其他板进行通信。 我可以从示波器中读取数据已传输、并通过导线连接 RX TX。 但是、程序不能跳转到 RX 中断。  我发现中断使能寄存器为0、但我在代码中启用了中断。

顺便说一下、我启用了系统中断。

以下是我的代码和 UART 寄存器的值:

void InitUART (void){

UCAxCTL1 |= UCSWRST; //**停止 USCI 状态机**

UART_PxREN &=~(UART_TX_PAD|UART_RX_PAD);//禁用端口拉电阻
UART_PxDIR &=~UART_RX_PAD; //将 P4.5配置为输入
UART_PxDIR |= UART_TX_PAD; //将 P4.4配置为输出
UART_PxSEL |=(UART_TX_PAD|UART_RX_PAD);// Px.x & Px.X = USCI_Ax TXD & RXD

UCAxCTL0 = 0x00; //无奇偶校验,8-N-1模式
UCAxCTL1 |= UCSSEL_ACLK; //选择12MHz ACLK 作为 UART
UCAxBR = UART_BAUDRATE_REG 的时钟源; //定义波特率
UCAxMCTL =(UCBRF_0|UCBRS_1); //调制 UCBRSx = 1//Vishy:115200波特率选择@ 12MHz
// UCAxMCTL =(UCBRF_0|UCBRS_0); //调制 UCBRSx = 1//Vishy:230400波特率选择@ 12MHz
UCAxIFG &&~UCAxRXIFG; //清除 RX IFG (中断标志寄存器)
UCAxIFG &&~UCAxTXIFG; //清除 TX IFG (中断标志寄存器)
UCAxIE |= UCAxRXIE +UCAxTXIE; //启用 USCI_A1 RX 中断
UCAxCTL1 &=~UCSWRST; //**初始化 USCI 状态机**


} 
#pragma vector=UCAxRX_Vector;
__interrupt void receiveUART (void)
{
unsigned short i;
unsigned char TimeOutCounter = 0;

if (UCAxRXIFG)// USCI_A0 RX 缓冲区准备就绪?
{
open_FLAG=UCAxRXBUF;

}//等待 Tx 缓冲区为空
UartRx_FLAG = 1;

} 

我该怎么做?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    > UCAxIE |= UCAxRXIE +UCAxTXIE; //启用 USCI_A1 RX 中断
    > UCAxCTL1 &=~UCSWRST; //**初始化 USCI 状态机**

    当 USCI 处于复位状态时、IE 位不能被置位。 颠倒这些陈述的顺序:

    > UCAxCTL1 &=~UCSWRST; //**初始化 USCI 状态机**
    > UCAxIE |= UCAxRXIE +UCAxTXIE; //启用 USCI_A1 RX 中断

    未经请求:请记住、在您设置 TXIE 时、TXIFG 将被置位。 我在您的 ISR 中看不到这方面的任何配置。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    非常感谢、这对您有很大帮助!