工具/软件:Code Composer Studio
H、
我正在尝试通过 UART 与 MSP430FR5043定制板进行通信。 我已附上以下代码。 我刚刚使用了内置库代码并将其修改为我的设计。 但代码无法正常工作、或者串行监视器(PuTTy)没有输出。 我已将波特率配置为9600并且没有流控制。 我的代码应在 PuTTY 窗口中传输数字1、但未发生任何情况。 请指导我的代码出错的地方、因为我没有任何工作代码示例。下面是我的代码:
#include
volatile unsigned char RXData = 0;
volatile unsigned char TXData = 1;
int main (空)
{
WDTCTL = WDTPW | WDTHOLD;//停止看门狗
//配置 GPIO
P5SEL0 &=~(BIT0 | BIT1);
P5SEL1 |= BIT0 | BIT1;// USCI_A2 UART 操作
PJSEL0 |= BIT4 | BIT5;//配置 XT1引脚
//禁用 GPIO 上电默认高阻抗模式以激活
//先前配置的端口设置
PM5CTL0 &=~LOCKLPM5;
// XT1设置
CSCTL0_H = CSKKEY_H;//解锁 CS 寄存器
CSCTL1 = DCOFSEL_0;//将 DCO 设置为1MHz
CSCTL2 = SELA_LFXTCLK | SELESS__DCOCLK | SELM_DCOCLK;
CSCTL3 = DIVA__1 | DIVM_1 | DIVM__1;//设置所有分频器
CSCTL4 &=~LFXTOFF;//启用 LFXT1
操作
{
CSCTL5 &=~LFXTOFFG;//清除 XT1故障标志
SFRIFG1 &=~OFIFG;
} while (SFRIFG1 & OFIFG);//测试振荡器故障标志
CSCTL0_H = 0;//锁定 CS 寄存器
//将 USCI_A2配置为 UART 模式
UCA2CTLW1 = UCSWRST;
UCA2CTLW1 |= UCSSEL_2;//设置 SMCLK
UCA2BRW = 3;// 9600波特
UCA2MCTLW |= 0x5300;// 32768/9600 - INT (32768/9600)=0.41
// UCBRSx 值= 0x53 (请参阅 UG)
UCA2CTLW1 &=~UCSWRST;//从复位中释放
UCA2IE |= UCRXIE;//启用 USCI_A2 RX 中断
_bis_SR_register (LPM3_bits | GIE);//输入 LPM3、中断被启用
__no_operation();//用于调试器
}
#if defined (__TI_Compiler_version__)|| Defined (__IAR_systems_ICC__)
#pragma vector=EUSCI_A2_vector
_interrupt void USCI_A2_ISR (void)
#Elif defined (_GNU_)
void __attribute__((中断(EUSCI_A2_vector)) USCI_A2_ISR (void)
其他
错误编译器不受支持!
#endif
{
switch (__evo_in_range (UCA2IV、USCI_UART_UCTXCPTIFG))
{
USCI_NONE 案例:中断;
USCI_UART_UCRXIFG 案例:
while (!(UCA2IFG&UCTXIFG));
UCA2TXBUF = UCA2RXBUF;
__no_operation();
中断;
案例 USCI_UART_UCTXIFG:中断;
案例 USCI_UART_UCSTTIFG:中断;
案例 USCI_UART_UCTXCPTIFG:中断;
默认值:break;
}
}