请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号: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; }
我该怎么做?
