[STM32] 段式LCD偶尔显示缺失

[复制链接]
1630|10
 楼主| pkuzhx 发表于 2015-10-28 17:07 | 显示全部楼层 |阅读模式
本帖最后由 pkuzhx 于 2015-10-28 17:25 编辑

我使用的LCD如下图,32段LCD,可以显示4位数字,现在最低位偶尔显示不出来(具体表现:最低位每一段都淡淡地发亮,但是不会随数字变化而闪烁)。
LCD使用的HT1621B驱动,LCD模块的5个输入CS、WR、DA、VC、GND都接到STM32F4的GPIO口,IO设置为push-pull输出,无上下拉。
现在的情况是,十次开机可能有一两次显示不正常,大部分时候都正常。一开始我怀疑是焊接问题,换了两块板子和三个LCD模块,结果都一样。而且某次开机,一旦显示正常,就会一直正常;同样,开机后如果不正常,就会一直不正常。这样的现象也不像是硬件的问题,但更不像是软件的问题。
最好的办法可能是示波器观察正常和不正常的波形。但我以前没用过LCD模块,代码是稍微修改了别人的就拿来用了,对LCD和驱动的时序不太了解。所以先请大家帮我分析一下可能是什么原因。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
 楼主| pkuzhx 发表于 2015-10-29 16:51 | 显示全部楼层
顶一下,没有人回答么。。
哪怕随便猜个原因启发我一下也好啊
ayb_ice 发表于 2015-10-29 17:25 | 显示全部楼层
这种引脚的基本不存在接触不良,

程序问题

mcu5i51 发表于 2015-10-30 10:15 | 显示全部楼层
好像是初始化问题,怀疑4*8成了4*6了
ningling_21 发表于 2015-10-30 10:54 | 显示全部楼层
软件问题的嫌疑比较大
lu50211 发表于 2015-10-30 12:26 | 显示全部楼层
注意1621的时钟频率,相对于STM32F4来说是低速设备,初始化要做适当延时处理。
 楼主| pkuzhx 发表于 2015-10-30 16:11 | 显示全部楼层
lu50211 发表于 2015-10-30 12:26
注意1621的时钟频率,相对于STM32F4来说是低速设备,初始化要做适当延时处理。 ...

初始化有加延时,我再试试在某些函数内部也加延时看看效果。

现在它又变成下载或刚上电后缺失一位,但是reset后就好了,好晕
ayb_ice 发表于 2015-10-30 16:41 | 显示全部楼层
pkuzhx 发表于 2015-10-30 16:11
初始化有加延时,我再试试在某些函数内部也加延时看看效果。

现在它又变成下载或刚上电后缺失一位,但是 ...

初始化以后,就送全显,然后死循环,

就能知道问题了
 楼主| pkuzhx 发表于 2015-10-30 16:44 | 显示全部楼层
ayb_ice 发表于 2015-10-30 16:41
初始化以后,就送全显,然后死循环,

就能知道问题了

好主意。
这两天忙的焦头烂额,暂时先这么用着了。等找到问题了,再贴上来分享。
 楼主| pkuzhx 发表于 2015-11-2 14:05 | 显示全部楼层
void Ht1621_Init(void)
{
  Ht1621_CS_1();
  Ht1621_WR_1();
  Ht1621_DO_1();
  Ht1621WrCmd(BIAS);
  Ht1621WrCmd(RC256);             // internal oscillator
  //Ht1621WrCmd(XTAL);             // external oscillator
  Ht1621WrCmd(SYSDIS);
  Ht1621WrCmd(WDTDIS1);
  Ht1621WrCmd(SYSEN);
  Ht1621WrCmd(LCDON);
}
在HT1621初始化代码中加入如上前三句,对WR、CS、DO置1。问题解决。

调试时发现com4的时钟在第一次上电时初始化不成功,reset以后正常。确定应该是代码问题。网上找了下HT1621b的初始化,发现跟淘宝卖家提供的还是有区别的。照网上代码修改后,问题不再出现。
xushuo888 发表于 2018-8-27 16:44 | 显示全部楼层
用过VK1621B的LCD驱动芯片,质量不错,性价比也高

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:原来可以设置签名档啊!

45

主题

730

帖子

6

粉丝
快速回复 在线客服 返回列表 返回顶部