[STM32] stm32驱动晶联讯液晶

[复制链接]
2174|5
 楼主| andaqqq 发表于 2016-7-10 20: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);
}
muelfox 发表于 2017-12-4 22:34 | 显示全部楼层
我的JLX1286G-378也搞不好
muelfox 发表于 2017-12-5 15:58 | 显示全部楼层
刚在C51上搞通
airwill 发表于 2018-1-14 14:42 | 显示全部楼层
上这么一段代码让人帮你改程序呀?
什么, 连注释都没有.
时序是关键, 先验证读写时序吧,  一般问题都出现在这方面
czdpj 发表于 2018-1-24 08:27 | 显示全部楼层
重点关注时序和端口设置,可以先调通51驱动,再逐步核对。
ningling_21 发表于 2018-1-24 10:39 | 显示全部楼层
  1. void Init_lcd(uchar lcd_dat )
  2. {

  3.          CS_L();

  4.          RST_L();
  5.    Delaynms(200);
  6.          Delaynms(200);
  7.          Delaynms(200);
  8.          Delaynms(200);
  9. //   RST=1;
  10.          RST_H();
  11.    Delaynms(20);
  12.    Wr_lcd_cmd(0xe2);
  13.    Delaynms(5);
  14.    Wr_lcd_cmd(0x2c);
  15.    Delaynms(5);
  16.    Wr_lcd_cmd(0x2c);
  17.    Delaynms(5);
  18.    Wr_lcd_cmd(0x2f);
  19.    Delaynms(5);
  20. //   Wr_lcd_cmd(0x25);   // 粗调对比度 21-28   //23
  21.    Wr_lcd_cmd(lcd_dat);
  22.    Wr_lcd_cmd(0x8f);   // 微调对比度                  //81
  23.    Wr_lcd_cmd(0x38);   // 微调对比度值 00-3F //28
  24.    Wr_lcd_cmd(0xa2);   // 偏压比1/9
  25.    Wr_lcd_cmd(0xc8);
  26.    Wr_lcd_cmd(0xa0);   // 列扫描顺序
  27.    Wr_lcd_cmd(0x40);
  28.    Wr_lcd_cmd(0xaf);   // 开显示
  29. //   CS =1;
  30.    CS_H();
  31. }



串口12864初始化程序供参考
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

1

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部