初级会员

- 积分
- 170
- 金钱
- 170
- 注册时间
- 2018-8-3
- 在线时间
- 48 小时
|
1金钱
lcddev.id = LCD_ReadReg(0x0000); //?????????
if(lcddev.id<0XFF||lcddev.id==0XFFFF||lcddev.id==0X9300)//读到ID不正确,新增lcddev.id==0X9300判断,因为9341在未被复位的情况下会被读成9300
{
//尝试9341 ID的读取
LCD_WR_REG(0XD3);
LCD_RD_DATA(); //dummy read
LCD_RD_DATA(); //读到0X00
lcddev.id=LCD_RD_DATA(); //读取93
lcddev.id<<=8;
lcddev.id|=LCD_RD_DATA(); //读取41
if(lcddev.id!=0X9341) //非9341,尝试是不是6804
第一句话是什么意思呀?读取ID不是应该是像下面一样发送0XD3吗?发送0x0000查ILI9340手册就是一个NOP指令吧,有返回值?而且写入D3之后会依次返回dummy,00,93,41.这里为什么没有呢?
以下是
u16 LCD_ReadReg(u16 LCD_Reg)
{
LCD_WR_REG(LCD_Reg); //写入要读的寄存器号
return LCD_RD_DATA();
}
这个函数和分开写 LCD_WR_REG(0XD3); lcddev.id=LCD_RD_DATA(); 其实是一模一样的吧。
最近在研读不完全手册寄存器版本,有人进度类似吗?可以一起讨论。
|
|