TH1622可以写输入命令但是无法写入数据

📅 2026/7/31 15:29:47
TH1622可以写输入命令但是无法写入数据
故障现象TM16228COM 液晶驱动能够正常响应 LCD 开关等命令指令但显存写入操作始终无效屏幕上电后持续全段点亮调整通信时序、数据位序、偏压配置、初始化流程均无法解决问题。根本原因MCU 中将 TM1622 的RD引脚配置为推挽输出模式。 TM1622 仅写操作场景下RD引脚不需要参与通信该引脚强制输出电平会引发芯片内部总线为读写造成通信异常短帧命令数据包勉强识别显存写入数据包直接失效。void Ht1622Wr_bit(u8 Data,u8 cnt){u8 i;for (i0;icnt;i){HT_WR_LOW();LCD_delay();if(Data0x80)HT_DATA_HIGH();elseHT_DATA_LOW();Data1;LCD_delay();HT_WR_HIGH();LCD_delay();}}/*** brief 写数据用先移最低位* param Data 写入数据cnt写入位数* retval None*/void Ht1622Wr_data(u8 Data,u8 cnt){u8 i;for (i0;icnt;i){HT_WR_LOW();if(Data0x01)HT_DATA_HIGH();elseHT_DATA_LOW();Data1;LCD_delay();HT_WR_HIGH();LCD_delay();}}/*** brief 写命令* param cmd写命令* retval None*/void Ht1622WrCmd(u8 Cmd){HT_CS_HIGH();LCD_delay();HT_CS_LOW();Ht1622Wr_bit(0x80,3); // 写ID100表示命令模式Ht1622Wr_bit(Cmd,9); // 写9位命令看手册命令就是九位LCD_delay();}/*** brief 在指定地址写数据* param addr地址data写入数据* retval None*/void Ht1622WrOneData(u8 Addr,u8 Data){HT_DATA_HIGH();HT_CS_HIGH();LCD_delay();HT_CS_LOW();LCD_delay();Ht1622Wr_bit(0xa0,3); // 写数据功能码就是101Ht1622Wr_bit(Addr2,6); // 从手册看出写数据地址是6位Ht1622Wr_data(Data,4); // 从手册看出写数据是4位HT_CS_HIGH();LCD_delay();}void HT1622_ClearAll(void){ U8 i;for(i 0; i 64; i){Ht1622WrOneData(i, 0x00);}}/*** brief 初始化函数* param None* retval None*/void Ht1622_Init(void){Ht1622WrCmd(0x18); //系统时钟源片内RC振荡器Ht1622WrCmd(0x01); // 开启系统振荡器Ht1622WrCmd(0x07);HT1622_ClearAll();Ht1622WrCmd(0x03); // 打开LCD偏置电压}