标签归档:12864LCD

STM32驱动不带字库12864LCD

STM32驱动5V的12864LCD,控制脚和数据较最好接到STM32能容忍5v的IO口,外加上拉电阻时,控制脚和数据脚设置成开漏输出。不加上拉电阻时,控制脚设置为推拉输出,数据脚输出时,设置成推拉输出,输入时设置成上拉输入。加不加上拉电阻都能点亮LCD,关键是脚位配置。

GPIOE的PE0-PE7做数据线,控制线定义如下:

//————-PORTE———————

#define R_S GPIO_Pin_8

#define R_W GPIO_Pin_9

#define EN GPIO_Pin_10

#define _CS1 GPIO_Pin_11

#define _CS2 GPIO_Pin_12

#define _RST GPIO_Pin_13

首先IO口初始化

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_All;

GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;

GPIO_Init(GPIOE, &GPIO_InitStructure);

GPIO_ResetBits(GPIOE, EN );

GPIO_SetBits(GPIOE,_CS1 | _CS2 );

注意_CS1,_CS2初始化是一定要拉高,否则检测忙信号时,忙信号会一直是高。我就是因为这个问题卡了好几天。

以下是LCD驱动程序:

//指令宏定义

#define Display_On 0x3f //显示开指令

#define Display_Off 0x3e //显示关指令

#define Y_Col_Addr 0x40 //定位到第0列指令(列起始地址)(0-63)

#define X_Page_Addr 0xb8 //定位到第0页指令(页起始地址)(0-7)

#define Start_Line 0xc0 //定位从DDROM中的第0行开始往屏幕上显示

继续阅读