LCD Display画面错位及重复

本文探讨了TDDIIC显示集成IC在使用Long-Hmode(120Hz report rate)触控模式下,遇到外部LVDS数据写入linebuffer速度与读取速度不匹配的问题。由于Tiny4412主控DCLK最大支持80MHz,导致帧频仅为36Hz,从而引起画面错乱。通过调整initial code中寄存器配置,将读取速度匹配到36Hz,成功解决了画面异常问题。
摘要由CSDN通过智能技术生成

由于我手上这颗IC是TDDI IC,TP使用Long-H mode(120Hz report rate)touch区间。

外部LVDS data会先写入内部line buffer,当到了display区间,会从line buffer读取资料。而Line buffer的读取时间/速度,是根据frame rate = 60Hz来调试的。

而Tiny4412最大只支持80MHz的DCLK,换算出来的帧频只有36Hz,会导致写入line buffer速度变慢,但读取时间/速度仍按照60Hz设定,导致资料未完全写入Line buffer,就开始读取,因而导致画面错乱

最后是更改initial code里的寄存器配置,将读取时间/速度按照36Hz来配置,画面异常消失。

由于LCD显示器的驱动方式和接口不同,因此LCD display的源代码也会因为不同的LCD而异。以下是一个简单的LCD显示器的源代码示例: ```c // LCD显示器引脚 #define LCD_RS 2 #define LCD_EN 3 #define LCD_D4 4 #define LCD_D5 5 #define LCD_D6 6 #define LCD_D7 7 // 初始化LCD显示器 void lcd_init() { pinMode(LCD_RS, OUTPUT); pinMode(LCD_EN, OUTPUT); pinMode(LCD_D4, OUTPUT); pinMode(LCD_D5, OUTPUT); pinMode(LCD_D6, OUTPUT); pinMode(LCD_D7, OUTPUT); // 向LCD发送初始化命令 lcd_send_cmd(0x02); // 光标回到起始位置 lcd_send_cmd(0x28); // 4位数据总线,2行显示,5x8点阵字符 lcd_send_cmd(0x0C); // 开启显示,光标关闭 lcd_send_cmd(0x06); // 光标移动时自动滚屏 lcd_send_cmd(0x01); // 清屏 delay(2); // 等待清屏完成 } // 向LCD发送命令 void lcd_send_cmd(byte cmd) { digitalWrite(LCD_RS, LOW); lcd_send_nibble(cmd >> 4); lcd_send_nibble(cmd & 0x0F); } // 向LCD发送字符 void lcd_send_char(byte character) { digitalWrite(LCD_RS, HIGH); lcd_send_nibble(character >> 4); lcd_send_nibble(character & 0x0F); } // 向LCD发送数据的高4位和低4位 void lcd_send_nibble(byte nibble) { digitalWrite(LCD_D4, bitRead(nibble, 0)); digitalWrite(LCD_D5, bitRead(nibble, 1)); digitalWrite(LCD_D6, bitRead(nibble, 2)); digitalWrite(LCD_D7, bitRead(nibble, 3)); digitalWrite(LCD_EN, HIGH); delayMicroseconds(1); digitalWrite(LCD_EN, LOW); delayMicroseconds(100); } ``` 以上代码仅为基础代码,具体应按照LCD显示器的规格书及其驱动芯片手册来编写。同时,还需要根据不同的开发板和LCD显示器的接口来修改引脚定义等代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值