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.

[参考译文] MSP430FR4133:在 EVM 上的 LCD 屏幕上打印浮点图?

Guru**** 2552450 points
Other Parts Discussed in Thread: ENERGIA

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/592775/msp430fr4133-print-float-to-lcd-screen-on-evm

器件型号:MSP430FR4133
主题中讨论的其他器件:Energia

您好!

如何使用 Energia 在 EVM 的 LCD 屏幕上打印十进制数?

谢谢、

Julio

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

    Julio、

    CCS 和 Resource Explorer 中提供了相关的示例代码。

    //
    // MSP430FR413x 演示- LCD_E、在 LPM3.5模式下在 LCD 上显示字符串"123456"。
    //
    //说明:按顺序向 LCD 显示屏显示“123456”。
    // f (LCD)=32768Hz/((7+1)*16)=256Hz。
    // MSP430在 LPM3.5模式下工作以实现超低功耗。
    // ACLK =默认 REFO ~32768Hz、
    // MCLK = SMCLK =默认 DCODIV ~1MHz
    // LCD 引脚-端口引脚映射
    // LCD 引脚 G6021_Linex
    // 1. L8 (P3.0)
    // 2. L9 (P3.1)
    // 3. L10 (P3.2)
    // 4. L11 (P3.3)
    // 5. L12 (P3.4)
    // 6. L13 (P3.5)
    // 7. L14 (P3.6)
    // 8. L15 (P3.7)
    // 9. L16 (P6.0)
    // 10. L17 (P6.1)
    // 11. L18 (P6.2)
    // 12. L19 (P6.3)
    // 13. L20 (P6.4)
    // 14. L21 (P6.5)
    // 15. L22 (P6.6)
    // 16. L23 (P6.7)
    // 17. L4 (P7.4)
    // 18. L5 (P7.5)
    // 19. L6 (P7.6)
    // 20. L7 (P7.7)
    // 21. L3 (P7.3)
    // 22. L2 (P7.2)
    // 23. L1 (P7.1)
    // 24 L0 (P7.0)
    // 25 -//26.
    -//27.
    -//28.
    -//29.
    -//30.
    -//31.
    -//32.
    L24 (P2.0)
    // 33 L25 (P2.1)
    // 34 L26 (P2.2)
    // 35 L36 (P5.4)
    // 36 L37 (P5.5)
    // 37 L38 (P5.6)
    // 38 L39 (P5.7)
    //
    Cen Fang
    // Wei Zhao
    // Texas Instruments Inc.
    // 2013年10月
    //使用 IAR 嵌入式工作平台 v5.60和 Code Composer Studio v5.5构建
    //*********
    #include 
    
    #define pos1 4. //数字 A1 - L4
    #define pos2 6. //数字 A2 - L6
    #define pos3 8. //数字 A3 - L8
    #define pos4 10. //数字 A4 - L10
    #define pos5 2. //数字 A5 - L2
    #define pos6 18. //数字 A6 - L18
    
    const char digit[10]=
    {
    0xFC、 //"0"
    0x60、 //"1"
    0xDB、 //"2"
    0xF3、 //"3"
    0x67、 //"4"
    0xB7、 //"5"
    0xBF、 //"6"
    0xE4、 //"7"
    0xFF、 //"8"
    0xF7 //"9"
    };
    
    int main( void ){
    
    WDTCTL = WDTPW | WDTHOLD; //停止看门狗计时器
    
    //配置 XT1振荡器
    P4SEL0 |= BIT1 | BIT2; // P4.2~P4.1:晶振引脚
    操作
    {
    CSCTL7 &=~(XT1OFFG | DCOFFG); //清除 XT1和 DCO 故障标志
    SFRIFG1 &=~OFIFG;
    } while (SFRIFG1和 OFIFG); //测试振荡器故障标志
    CSCTL6 =(CSCTL6 &~(XT1DRIVE_3))| XT1DRIVE_2; // XT1振荡器的驱动强度和电流消耗更高
    
    
    //禁用 GPIO 上电默认高阻抗模式
    //激活先前配置的端口设置
    PM5CTL0 &=~LOCKLPM5;
    
    //配置 LCD 引脚
    SYSCFG2 |= LCDPCTL; //选择 R13/R23/R33/LCDCAP0/LCDCAP1引脚
    
    LCDPCTL0 = 0xFFFF;
    LCDPCTL1 = 0x07FF;
    LCDPCTL2 = 0x00F0; //选择 L0~L26和 L36~L39引脚
    
    LCDCTL0 = LCDSSEL_0 | LCDDIV_7; // flcd ref freq 为 xtclk
    
    // LCD 操作-模式3,内部3.08v,电荷泵256Hz
    LCDVCTL = LCDCPEN | LCDREFEN | VLCD_6 |(LCDCPFSEL0 | LCDCPFSEL1 | LCDCPFSEL2 | LCDCPFSEL3);
    
    LCDMEMCTL |= LCDCLRM; //清除 LCD 内存
    
    LCDCSSEL0 = 0x000F; //配置 COM 和 SEG
    LCDCSSEL1 = 0x0000; // L0、L1、L2、L3:COM 引脚
    LCDCSSEL2 = 0x0000;
    
    LCDM0 = 0x21; // L0 = COM0、L1 = COM1
    LCDM1 = 0x84; // L2 = COM2、L3 = COM3
    
    //显示“123456”
    LCDMEM[pos1]=位[1];
    LCDMEM[pos2]=数字[2];
    LCDMEM[pos3]= digit[3];
    LCDMEM[pos4]=数字[4];
    LCDMEM[pos5]= digit[5];
    LCDMEM[pos6]= digit[6];
    
    LCDCTL0 |= LCD4MUX | LCDON; //打开 LCD,选择4路复用
    
    PMMCTL0_H = PMMPW_H; //打开 PMM 寄存器进行写入
    PMMCTL0_L |= PMMREGOFF; //并设置 PMMREGOFF
    
    _bis_SR_register (LPM3_bits | GIE); //输入 LPM3.5
    __no_operation(); //对于调试器
    }
    

    在您的案例中是否需要使用 Energia?

    谢谢、

    NIMA Eskandari