拿到一块点阵屏幕,首先找卖家拿驱动例程
步骤
目录
1.void LCD_IO_Cfg(void)
2.void wr_cmd(u8 wrcmd)
3.void wr_data(u8 wrdata)
4.void init_lcd(void)
5.void disp_all(void)
6.void Fresh(void)
注:根据商家的时序图可以知道数据在上升沿/下降沿有效,我这里是上升沿。如下图
wr_cmd 写命令,A0=0
wr_cmd 写数据,A0=1
1.void LCD_IO_Cfg(void)
void LCD_IO_Cfg(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
//CS
GPIO_InitStructure.GPIO_Pin=GPIO_PIN_LCD_CS;
GPIO_Init(GPIO_PORT_LCD_CS, &GPIO_InitStructure);
//RESET
GPIO_InitStructure.GPIO_Pin=GPIO_PIN_LCD_RESET;
GPIO_Init(GPIO_PORT_LCD_RESET, &GPIO_InitStructure);
//A0
GPIO_InitStructure.GPIO_Pin=GPIO_PIN_LCD_A0;
GPIO_Init(GPIO_PORT_LCD_A0, &GPIO_InitStructure);
//SCK
GPIO_InitStructure.GPIO_Pin=GPIO_PIN_LCD_SCK;
GPIO_Init(GPIO_PORT_LCD_SCK, &GPIO_InitStructure);
//DATA
GPIO_InitStructure.GPIO_Pin=GPIO_PIN_LCD_DATA;
GPIO_Init(GPIO_PORT_LCD_DATA, &GPIO_InitStructure);
}
2.void wr_cmd(u8 wrcmd)
void wr_cmd(u8 wrcmd)
{
u8 ii,DA;
SCL_Low;
CS_Low;
Delay_us(LCD_DELAY_TIME);
A0_Low;
DA=wrcmd;
for(ii=0;ii<8;ii++)
{
SCL_Low;
Delay_us(LCD_DELAY_TIME);
if((DA&0X80)==0X80)
{
SDA_High;
}
else
{
SDA_Low;
}
Delay_us(LCD_DELAY_TIME);
SCL_High;
DA=DA<<1;
}
A0_High;
CS_High;
}
3.void wr_data(u8 wrdata)
void wr_data(u8 wrdata)
{
u8 ii,DA;
SCL_Low;
CS_Low;
Delay_us(LCD_DELAY_TIME);
A0_High;
DA=wrdata;
for(ii=0;ii<8;ii++)
{
SCL_Low;
Delay_us(LCD_DELAY_TIME);
if((DA&0X80)==0X80)
{
SDA_High;
}
else
{
SDA_Low;
}
Delay_us(LCD_DELAY_TIME);
SCL_High;
DA=DA<<1;
}
A0_High;
CS_High;
}
4.void init_lcd(void)
这里的代码,找商家要,不同商家,代码不一样
5.void disp_all(void)
void disp_all(void)
{
u8 x,y,Z=0xb0;
for(x = 0;x<4;x++)
{
wr_cmd(Z);
Z++;
wr_cmd(0x10);
wr_cmd(0x00);
for(y = 0;y<128;y++)
{
wr_data(0xff);
}
}
}
6.void Fresh(void)
void Fresh(void)
{
u8 ii,jj;
for(ii=0;ii<4;ii++)
{
wr_cmd(0xb0+ii); //select page
wr_cmd(0x10); //set MSB
wr_cmd(0x00); //set LSB
LCD_CS_LOW;
LCD_SCK_LOW;
LCD_A0_HIG;
for(jj=0;jj<128;jj++)
{
wr_data(Dis_RAM[ii][jj]);
}
LCD_CS_HIG;
}
}