收到 UART 命令后,有人能帮我插入正确的代码在 LCD 屏幕上滚动消息吗? 我的代码现在如下所示:
#include <MSP4C.h>
Int main (无效)
{
WDTCTL = WDTPW | WDTHOLD; //停止看门狗
//配置 GPIO
P4SEL0 |= BIT2 | BIT3; // USCI_A0 UART 操作
P4SEL1 &=~(BIT2 | BIT3);
//禁用 GPIO 通电默认高阻抗模式以激活
//以前配置的端口设置
PM5CTL0和=~LOCKLPM5;
//启动时钟系统,最大 DCO 设置为~8MHz
CSCTL0_H = CKEY >> 8; //解锁时钟寄存器
CSCTL1 = DCOFFSEL_3 | DCORSEL; //将 DCO 设置为8MHz
CSCTL2 =拉美经济体系__VLOCLK | SESS__DCOCLK | SELM__DCOCLK;
CSCTL3 = DIVA__1 | divs__1 | DIVM__1; //设置所有分隔器
CSCTL0_H = 0; //锁定 CS 寄存器
//为 UART 模式配置 USCI_A0
UCA0CTLW0 = UCSWRST; //重置 eUSCI
UCA0CTLW0 |= UCSSEL__SMCLK; // CLK = SMCLK
//波特率计算
//80000/(16*9600)= 52.083
//分次部分= 0.083
//用户指南表21-4:UCBRSx = 0x04
// UCBRFx = int ((52.083-52)*16)=1
UCA0BR0 = 52; //8000000 9600年00月16日
UCA0BR1 = 0x00;
UCA0MCTLW |= UCOS16 | UCBRF_1 | 0x4900;
UCA0CTLW0 &=~UCSWRST; //初始化 eUSCI
UCA0IE |= UCRXIE; //启用 USCI_A0 RX 中断
__bis_SR_register (LPM3_bits | GIE); //输入 LPM3,中断已启用
__no_operation(); //用于调试器
}
#IF 定义(__TI_Compiler_version__)||定义(__IAR_SYSTEMS _ICC__)
#pragma vector=USI_A0_vector
__中断无效 USCI_A0_ISR (无效)
#Elif Defined (__GNUC _)
void __attribute__((interrupt (USCI_A0_Vector)) USCI_A0_ISR (void)
#else
错误编译器不受支持!
#endif
{
交换机(__evo_in_range (UCA0IV,USCI_UART_UCTXCPTIFG))
{
案例 USCI_NONE:中断;
案例 USCI_UART_UCRXIFG:
开关(UCA0RXBUF)
{
案例0x01:
While (!(UCA0IFG&UCTXIFG));
UCA0TXBUF = 0x10;
休息;
案例0x02:
While (!(UCA0IFG&UCTXIFG));
UCA0TXBUF = 0x3D;
休息;
案例0x03:
While (!(UCA0IFG&UCTXIFG));
UCA0TXBUF = 0x5A;
休息;
案例0x04:
While (!(UCA0IFG&UCTXIFG));
UCA0TXBUF = 0x8B;
休息;
案例0x05:
While (!(UCA0IFG&UCTXIFG));
UCA0TXBUF = 0xA4;
休息;
案例0x06:
While (!(UCA0IFG&UCTXIFG));
UCA0TXBUF = 0xC6;
休息;
案例0x07:
While (!(UCA0IFG&UCTXIFG));
UCA0TXBUF = 0xD1;
休息;
案例0x08:
While (!(UCA0IFG&UCTXIFG));
UCA0TXBUF = 0xE9;
休息;
默认值:
While (!(UCA0IFG&UCTXIFG));
UCA0TXBUF = 0xFE;
}
__NO_OPEENT();
休息;
案例 USCI_UART_UCTXIFG:中断;
案例 USCI_UART_UCSTIFG:中断;
案例 USCI_UART_UCTXCPTIFG:中断;
}
}
有8个命令,如果没有收到8个命令,则为默认值。 我需要帮助插入正确的语言,以便在每个命令后,液晶屏上显示唯一的响应。