求助STM32驱动晶联讯12864的问题

2019-07-21 01:41发布

各位大大新人求助,用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);
}

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。