| 
 
中级会员  
 
	积分384金钱384 注册时间2023-7-23在线时间89 小时 | 
 
5金钱 
| 关于rs如何运作的。 程序里用了一个结构体lcd来控制,lcd结构体被强制在0x6c0007fe。所以LCD_RED地址为0x6c0007fe和0x6c0007ff,LCD_RAM地址则是0x6c00080和0x6c00081。然后在寻找tftlcd型号时,由于我的型号是7789,所以当执行代码。
 if (lcddev.id != 0X9341)            //不是 9341 , 尝试看看是不是 ST7789
 {
 LCD_WR_REG(0X04);
 lcddev.id = LCD_RD_DATA();      //dummy read
 lcddev.id = LCD_RD_DATA();      //读到0X85
 lcddev.id = LCD_RD_DATA();      //读取0X85
 lcddev.id <<= 8;
 lcddev.id |= LCD_RD_DATA();     //读取0X52
 
 
 if (lcddev.id == 0X8552)        //将8552的ID转换成7789
 {
 lcddev.id = 0x7789;
 }
 
 能得到正确的id
 
 但是,我当时打开仿真用内存监视0x6c0007fe然后步进程序时,发现内存是这样的:FF FF 00 00 85 00 00 85 00 52 00 00.....然后LCD_RAM的值一直不是85和52。而这个过程一旦不监视内存时程序就能正确读取到值!
 
 | 
 |