如题
STM32串行驱动绘晶的12864ZW液晶屏不显示
下面是程序
void screen_init(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD|RCC_APB2Periph_GPIOB,ENABLE);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4;//RST
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOD,&GPIO_InitStructure);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5;//CLK
GPIO_Init(GPIOD,&GPIO_InitStructure);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6;//SID
GPIO_Init(GPIOD,&GPIO_InitStructure);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7;//CS
GPIO_Init(GPIOD,&GPIO_InitStructure);
delay_ms(50);
GPIO_ResetBits(GPIOD,GPIO_Pin_4);//¸´Î»
delay_ms(10);
GPIO_SetBits(GPIOD,GPIO_Pin_4);
delay_ms(50);
LCD12864_Write(WRITE_CMD,0x34);
delay_ms(10);
LCD12864_Write(WRITE_CMD,0x30);
delay_ms(10);
LCD12864_Write(WRITE_CMD,0x06);
delay_ms(10);
LCD12864_Write(WRITE_CMD,0x01);
delay_ms(10);
LCD12864_Write(WRITE_CMD,0x0C);
delay_ms(10);
LCD12864_Write(WRITE_CMD,0x02);
}
void ShowChar(u8 addr, u8 *dat1 , u8 count)
{
u8 i=0;
LCD12864_Write(WRITE_CMD,addr);
delay_ms(1);
// for(i=0;i<count;i++)
{
LCD12864_Write(WRITE_DAT,0x30);
delay_ms(10);
}
}
void LCD12864_Write(u8 writeMode,u8 dat)
{
GPIO_ResetBits(GPIOD,GPIO_Pin_7);
GPIO_SetBits(GPIOD,GPIO_Pin_7);
LCD12864_SendByte(writeMode);
LCD12864_SendByte(0xF0 & dat);
LCD12864_SendByte(0xF0 & (dat<<4));
GPIO_ResetBits(GPIOD,GPIO_Pin_7);
}
void LCD12864_SendByte(u8 dat)
{
u8 i;
GPIO_SetBits(GPIOD,GPIO_Pin_6);
LCD12864_SCK_HIGH();
for(i=0;i<8;i++)
{
if((dat<<i)&0x80)
{
GPIO_SetBits(GPIOD,GPIO_Pin_6);
}
else
{
GPIO_ResetBits(GPIOD,GPIO_Pin_6);
}
LCD12864_SCK_LOW();
delay_us(200);
LCD12864_SCK_HIGH();
delay_us(100);
}
}
void LCD12864_SCK_LOW(void)
{
GPIO_ResetBits(GPIOD,GPIO_Pin_5);
}
void LCD12864_SCK_HIGH(void)
{
GPIO_SetBits(GPIOD,GPIO_Pin_5);
}
大神看看是哪里出了问题啊!!急等
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
一周热门 更多>