你好!
我使用的是 MSP430fr4133 launchpad。 我将 LCD 配置为静态模式、但它不起作用。 我想运行 NXP LCD,此结果中有一个背板。
请提供帮助。
这是我的代码。
小问题*** LCD.c *******
#include
#include "global.h"
#define LCDMEMW ((int*) LCDMEM)
const char digit[10]=
{
0xFC、//"0"
0x60、//"1"
0xDB、//"2"
0xF3、//"3"
0x67、//"4"
0xB7、//"5"
0xBF、//"6"
0xE4、//"7"
0xFF、//"8"
0xF7 //"9"
};
空 LCDInit (空)
{
//unsigned char value=0;
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 参考频率为 xtclk
// LCD 操作-模式3,内部3.08v,电荷泵256Hz
LCDVCTL = LCDCPEN | LCDREFEN | VLCD_6 |(LCDCPFSEL0 | LCDCPFSEL1 | LCDCPFSEL2 | LCDCPFSEL3);
LCDMEMCTL |= LCDCLRM;//清除 LCD 存储器
LCDCSSEL0 = 0x0001;//配置 COM 和 SEG
LCDCSSEL1 = 0x0000;// L0、L1、L2、L3:COM 引脚
LCDCSSEL2 = 0x0000;
LCDM0 = 0x11;// L0 = COM0、
LCDM1 = 0x00;
LCDCTL0 |= LCDSTATIC | LCDON;//打开 LCD,选择2路复用
PMMCTL0_H = PMMPW_H;//打开 PMM 寄存器进行写入
PMMCTL0_L |= PMMREGOFF;//并设置 PMMREGOFF
}
//================================================================
int LCDDataOut (int data、int 位置)
{
LCDMEM[pos4]=数字[数据];
}
//_bis_SR_register (LPM3_bits | GIE);//输入 LPM3.5
//__no_operation();//用于调试器
小问题*** main.c *******
#include
#include" global.h"
unsigned int 计数器= 0;
int main (空)
{
WDTCTL = WDTPW + WDTHOLD;//停止看门狗计时器
PM5CTL0 &=~LOCKLPM5;//禁用 GPIO 上电默认高阻抗模式以激活
//先前配置的端口设置
LCDInit();
对于 LED、//P4.0设置为 o/p
P4DIR |= BIT0;//将 P4.0设置为输出方向
P4OUT &=~(BIT0);//将 P4.0设置为0 (关闭)
while (1)
{
LCDDataOut (1、pos2);
_DELAY_CYCLES (10);
}
}