各位大大新人求助,用stm32驱动晶联讯的12864,初始化都是按照说明书例程写的,液晶型号是JLX12864G-332-PC,就是显示不了,麻烦各位大大看下程序,谢谢
void RCC_Configuration(void);
void GPIO_Configuration(void);
void LED_init(void);
void delay(unsigned int ms);
void LcdWcom(unsigned char WCom);
void LcdWdata(unsigned char WData);
int main(void)
{
RCC_Configuration(); //系统时钟初始化
GPIO_Configuration();//端口初始化
LED_init();
delay(10);
LcdWcom(0x85);
delay(10);
LcdWdata(3);
}
void RCC_Configuration(void)
{
SystemInit();
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD,ENABLE);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOE,ENABLE);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);
}
void GPIO_Configuration(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
GPIO_InitStructure.GPIO_Pin=GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_4|GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_7;
GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;
GPIO_Init(GPIOD,&GPIO_InitStructure);
GPIO_InitStructure.GPIO_Pin=GPIO_Pin_4|GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_9;
GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;
GPIO_Init(GPIOB,&GPIO_InitStructure);
GPIO_InitStructure.GPIO_Pin=GPIO_Pin_0|GPIO_Pin_1;
GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;
GPIO_Init(GPIOE,&GPIO_InitStructure);
GPIO_InitStructure.GPIO_Pin=GPIO_Pin_14|GPIO_Pin_15;
GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;
GPIO_Init(GPIOA,&GPIO_InitStructure);
}
void LED_init(void)
{
GPIO_ResetBits(GPIOB,GPIO_Pin_4);//cs
GPIO_SetBits(GPIOB,GPIO_Pin_8); //rom_cs
GPIO_ResetBits(GPIOB,GPIO_Pin_5);//reset
delay(20);
GPIO_SetBits(GPIOB,GPIO_Pin_5);
delay(20);
LcdWcom(0xe2);
delay(10);
LcdWcom(0x2c);
delay(10);
LcdWcom(0x2e);
delay(10);
LcdWcom(0x2f);
delay(10);
LcdWcom(0x24);
delay(10);
LcdWcom(0x81);
delay(10);
LcdWcom(0x0f);
delay(10);
LcdWcom(0xa2);
delay(10);
LcdWcom(0xc8);
delay(10);
LcdWcom(0xa0);
delay(10);
LcdWcom(0x60);
delay(10);
LcdWcom(0xaf);
delay(10);
GPIO_SetBits(GPIOB,GPIO_Pin_4);//cs置1
delay(10);
}
void delay(unsigned int ms)
{
unsigned int x,y;
for(x=0;x<ms;x++)
for(y=0;y<8000;y++);
}
void LcdWcom(unsigned char WCom)
{
delay(10);
GPIO_ResetBits(GPIOB,GPIO_Pin_4);//cs
GPIO_ResetBits(GPIOB,GPIO_Pin_6);//rs
GPIO_ResetBits(GPIOA,GPIO_Pin_15);//E
GPIO_ResetBits(GPIOA,GPIO_Pin_14);//RW
GPIO_Write(GPIOD,WCom);
GPIO_SetBits(GPIOA,GPIO_Pin_15);
delay(10);
GPIO_SetBits(GPIOB,GPIO_Pin_4);
delay(10);
}
void LcdWdata(unsigned char WData)
{
delay(10);
GPIO_ResetBits(GPIOB,GPIO_Pin_4);
GPIO_SetBits(GPIOB,GPIO_Pin_6);
GPIO_ResetBits(GPIOA,GPIO_Pin_15);
GPIO_ResetBits(GPIOA,GPIO_Pin_14);
GPIO_Write(GPIOD, WData);
GPIO_SetBits(GPIOA,GPIO_Pin_15);
delay(10);
GPIO_SetBits(GPIOB,GPIO_Pin_4);
delay(10);
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
一周热门 更多>