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.

[参考译文] MSP430FR6989:接收 UART 命令后让 LCD 滚动消息

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/1084088/msp430fr6989-getting-lcd-to-scroll-message-after-receipt-of-uart-command

部件号:MSP430FR6989

收到 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个命令,则为默认值。  我需要帮助插入正确的语言,以便在每个命令后,液晶屏上显示唯一的响应。

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

    您好,保罗,

    您没有分享多少关于您计划使用哪个液晶屏的信息,但我可以提供一些一般性指导。 有关  如何使用 MSP430驱动 LCW 的一般信息,请参阅使用 MSP430Tm MCU 和段 LCD 进行设计。 您可能也有兴趣了解此 代码示例

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

    Evan,您好!

    感谢您的回复。 我使用的 EXPMSP430评估板带有板载 LCD 屏幕。  我正在寻求有关如何插入 LCD 编码的帮助。

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

    感谢您分享反馈。 我首先使用“开箱即用”代码作为示例。 您可以在 此处找到下载 和参考 。 希望这能让您开始工作。