中级会员
- 积分
- 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。而这个过程一旦不监视内存时程序就能正确读取到值!
|
|