<p><br></p><p><strong>一、HX8357D:</strong></p><p>先下指令:</p><p>write_cmd(0xB9);</p><p>write_para(0xFF);</p><p>write_para(0x83);</p><p>write_para(0x57);</p><p>write_cmd(0xFE );</p><p>write_para(0xD0);</p><p>read_data(0xFF,one_byte_return); </p><p>//Read HX8357-D ID=99h 读0XFF返回0x99刚是HX8357D</p><p><strong><strong>二、</strong></strong><strong>ILI9488与ILI9486</strong>读ID流程一样</p><p><img src="https://mmbiz.qpic.cn/mmbiz_jpg/qYRFMPMXmtTqfugIRPQkyub53xTWpsEqmvkDnEDCBFoicFANgAhJFhXGwGhEOlkLYLQGZzwzeicyjyCasjBBSeFQ/640?wx_fmt=jpeg&tp=webp&wxfrom=5&wx_lazy=1&wx_co=1"></p><p><br></p><p>void DispRegValue(void)<br>{<br>unsigned char i=0;<br>unsigned char id1,id2,id3,id4;</p><p>SPI_CS=0;</p><p>SPI_RES=1;<br>Delay(160); // delay 40 ms<br>SPI_RES=0;<br>Delay(160); // delay 40 ms</p><p> SPI_RES=1;</p><p>Delay(480); // delay 120 ms</p><p><br></p><p> //Adjust Control 3 <br>SPI_WriteComm(0XF7);<br>SPI_WriteData(0xA9);<br>SPI_WriteData(0x51);<br>SPI_WriteData(0x2C);<br>SPI_WriteData(0x82);<br><br> //3W-SDA read id</p><p> SPI_WriteComm(0XB0);<br>SPI_WriteData(0X80); //byte1 <br><br>SPI_WriteComm(0XFB);<br>SPI_WriteData(0X80); <br>id1=Read_chipID(0xd3); //Parameter1=DUMMY 无效<br><br>SPI_WriteComm(0X2E);<br>SPI_WriteData(0X81); //Parameter2=0X88 无效 <br>id2=Read_chipID(0xd3);<br><br>SPI_WriteComm(0XFB);<br>SPI_WriteData(0X82); //Parameter3=0X94 有用</p><p>id3=Read_chipID(0xd3);<br><br> SPI_WriteComm(0XFB);<br>SPI_WriteData(0X83);//Parameter4=0X88 ,9486为0X86<br>id4=Read_chipID(0xd3);<br>}</p><p>unsigned int Read_chipID(unsigned char regist)<br>{ <br>unsigned char i,dat=0x00;<br>DIR=0; //MCU send data to driver ic<br>SPI_CS=0;<br>SPI_DI=0;<br>SPI_CLK=0;<br>SPI_CLK=1; //写0XD3<br>for(i=8;i>0;i--) <br>{<br>regist<<=1;<br>SPI_DI=CY;<br>SPI_CLK=0;<br>_nop_();_nop_();_nop_();_nop_();<br>SPI_CLK=1;<br>}<br>SPI_DI=1; //读之前将SDA拉高<br>Delay(80); //延时20ms<br> for(i=8;i>0;i--) <br> { <br>SPI_CLK=0;<br>Delay(4); //1ms<br>SPI_CLK=1;<br>dat<<=1; //MCU read data from driver ic<br> if(SPI_DI)<br>{<br>dat++; <br>} <br> } <br>DIR=0; //MCU send data to driver ic<br>CS0=1; <br>DIR=0;<br>return dat;<br>}</p><p><br></p><p><strong>三、ILI9481</strong>读BF寄存器,可以读到ID,第四,第五个字节为需要的ID<br></p><p>复位过后写C6H再去读BFH</p><p><br></p><p>void DispRegValue(void)<br>{</p><p>unsigned char i=0, id1,id2,id3,id4;<br> SPI_CS=0;<br></p><p>SPI_RES=1;<br>Delay(160); // delay 40 ms<br>SPI_RES=0;<br> Delay(160); // delay 40 ms</p><p> SPI_RES=1;</p><p><br></p><p>Delay(480); // delay 120 ms</p><p>//3W-SDA read id</p><p>SPI_WriteComm(0xC6);</p><p>SPI_WriteData(0X80); //SDA读使能</p><p>id1=Read_chipID(0XBF); //byte1=0X02</p><p>id2=Read_chipID(0XBF); //byte2=0x04有用</p><p>id3=Read_chipID(0XBF); //byte3=0X94 有用</p><p>id4=Read_chipID(0XBF); //byte4=0X81 有用 </p><p>id5=Read_chipID(0XBF); //byte5=0XFF 有用</p><p>}</p><p>unsigned int Read_chipID(unsigned char regist)<br>{ <br> unsigned char i,dat=0x00;</p><p>DIR=0; //MCU send data to driver ic</p><p>SPI_CS=0;<br>SPI_DI=0;<br>SPI_CLK=0;<br>SPI_CLK=1; //写<strong>0XBF</strong><br>for(i=8;i>0;i--) <br>{<br>regist<<=1;<br>SPI_DI=CY;<br>SPI_CLK=0;<br>_nop_();_nop_();_nop_();_nop_();<br>SPI_CLK=1;<br>}<br>SPI_DI=1; //读之前将SDA拉高<br>Delay(80); //延时20ms<br> for(i=8;i>0;i--) <br> { <br>SPI_CLK=0;<br>Delay(4); //1ms<br>SPI_CLK=1;<br>dat<<=1; </p><p>DIR=1; //MCU read data from driver ic</p><p> if(SPI_DI)<br>{<br>dat++; <br>} <br> } <br>DIR=0; //MCU send data to driver ic<br>CS0=1; <br>DIR=0;<br>return dat;<br>}</p><p>送完初始化后先下以下指令</p><p>write_cmd(0xc6);</p><p>write_dat(0x82);</p><p><br></p><p><strong>四、</strong><strong>ST7796S</strong>读BF寄存器,可以读到ID,第三,第四个字节为需要的ID值</p><p>复位过后:FBH送偏移量,再读D3H</p><p><br></p><p>void DispRegValue(void)<br>{<br></p><p>unsigned char i=0;<br>unsigned char id1,id2,id3,id4;<br> SPI_CS=0;</p><p>SPI_RES=1;<br>Delay(160); // delay 40 ms<br>SPI_RES=0;<br>Delay(160); // delay 40 ms</p><p> SPI_RES=1;</p><p>Delay(480); // delay 120 ms</p><p><br></p><p>SPI_WriteComm(0XFB);<br>SPI_WriteData(0X10); <br>id1=Read_chipID(0xd3); //Parameter1=0x00无效<br><br>SPI_WriteComm(0XFB);<br>SPI_WriteData(0X11); //Parameter2=0X77 有用 <br>id2=Read_chipID(0xd3);<br><br>SPI_WriteComm(0XFB);<br>SPI_WriteData(0X12); //Parameter3=0X96 有用 </p><p>id3=Read_chipID(0xd3);</p><p><br></p><p>SPI_WriteComm(0XFB);<br>SPI_WriteData(0X13); //Parameter3=0X00 有用</p><p>id3=Read_chipID(0xd3);</p><p>}</p><p>unsigned int Read_chipID(unsigned char regist)<br>{ <br>unsigned char i,dat=0x00;<br>DIR=0; //MCU send data to driver ic</p><p>SPI_CS=0;<br>SPI_DI=0;<br>SPI_CLK=0;<br>SPI_CLK=1; //写0xd3<br>for(i=8;i>0;i--) <br>{<br>regist<<=1;<br>SPI_DI=CY;<br>SPI_CLK=0;<br>_nop_();_nop_();_nop_();_nop_();<br>SPI_CLK=1;<br>}<br>SPI_DI=1;//读之前将SDA拉高<br>Delay(80);//延时20ms<br> for(i=8;i>0;i--) <br> { <br>SPI_CLK=0;<br>Delay(4); //1ms<br>SPI_CLK=1;<br>dat<<=1; </p><p>DIR=1; //MCU read data from driver ic</p><p> if(SPI_DI)<br>{<br>dat++; <br>} <br> } <br>DIR=0; //MCU send data to driver ic<br>CS0=1; <br>DIR=0;<br>return dat;<br>}</p><p><img src="https://mmbiz.qpic.cn/mmbiz_jpg/qYRFMPMXmtTqfugIRPQkyub53xTWpsEqSSOjoibM3fKoh2Qccau5wGEZlp3CH74DKRzjReFZUVzrZG9icJ3Bic2yA/640?wx_fmt=jpeg&tp=webp&wxfrom=5&wx_lazy=1&wx_co=1"></p><p><strong>以上读代码都是基于51单片机实现,仅供参考</strong></p><p><br></p>
讯享网

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/206958.html