手上的st7789移植成功后,发现红蓝颜色通道互换了,RGB变成了BGR,折腾了好几天,反复对比st7789寄存器的设置,一直以为是初始化的问题。
今天突然发现初始化后的显示方向函数与厂家不一致,查看源码发现问题出在函数lcd_display_dir(0);里调用的void lcd_scan_dir(uint8_t dir)里面,里面会强制将st7789颜色格式设置为BGR格式,添加RGB格式的寄存器值后颜色显示正常。
这段代码运行在初始化后,所以前面怎么修改都没有效果,一度怀疑人生,不知道他这么设置的用意是什么。