初级会员
- 积分
- 167
- 金钱
- 167
- 注册时间
- 2017-8-23
- 在线时间
- 16 小时
|
驱动程序是参考原子哥的FSMC方式,由于探索者开发板上的LCD复位引脚和MCU复位引脚是连接在一起的,所以程序不需要软件复位,但是我用的板子上复位引脚是通过一个IO口控制,所以在去读芯片ID时必须先复位芯片,再去读。
lcdRest();
delay_ms(150); // delay 50 ms
lcdWriteReg(0x0000,0x0001);
delay_ms(150); // delay 50 ms
lcddev.id = lcdReadReg(0x0000);
if(lcddev.id<0XFF||lcddev.id==0XFFFF)
{
//尝试9486 ID的读取
lcdWrReg(0XD3);
lcddev.id=lcdRdData(); //dummy read
lcddev.id=lcdRdData(); //读到0X00
lcddev.id=lcdRdData(); //读取94
lcddev.id<<=8;
lcddev.id|=lcdRdData(); //读取86
}
LCD驱动参考链接:http://www.openedv.com/posts/list/50924.htm
另外注意不同的驱动IC,读写时序控制寄存器的值不同,有时屏幕显示出现异常可能是读写时序的时间设置太快。
|
|