完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
`我使用的LCD如下图,32段LCD,可以显示4位数字,现在最低位偶尔显示不出来(具体表现:最低位每一段都淡淡地发亮,但是不会随数字变化而闪烁)。 LCD使用的HT1621B驱动,LCD模块的5个输入CS、WR、DA、VC、GND都接到STM32F4的GPIO口,IO设置为push-pull输出,无上下拉。 现在的情况是,十次开机可能有一两次显示不正常,大部分时候都正常。一开始我怀疑是焊接问题,换了两块板子和三个LCD模块,结果都一样。而且某次开机,一旦显示正常,就会一直正常;同样,开机后如果不正常,就会一直不正常。这样的现象也不像是硬件的问题,但更不像是软件的问题。 最好的办法可能是示波器观察正常和不正常的波形。但我以前没用过LCD模块,代码是稍微修改了别人的就拿来用了,对LCD和驱动的时序不太了解。所以先请大家帮我分析一下可能是什么原因。 |
|
相关推荐
3个回答
|
|
我认为是初始化问题,初始化的某个指令的时序可能正好在边缘状态,就是有时候成有时候不成,可能稍微延时一下给硬件一点响应时间就可以了。上示波器,找资料,看波形时序。
我假设这个是一个模块和你另一个板子连接,如果你怀疑这个板子有问题,那么换几块试试,如果你怀疑主板问题,换主板试试,有效解决虚焊短路问题。 还有一个GND你确定是连接到一个GPIO上了? 可能存在的问题就是,接地IO拉低,是否是直接连到地?这个问题需要斟酌,IO内部结构需要考虑,否则这是一个浮地,当电路大一点的话,结果可能出乎意料。
最佳答案
|
|
|
|
额外为各位个给我哥我哥我个人过额外问问
|
|
|
|
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。问题解决。 |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
205 浏览 0 评论
求助一下关于51系列单片机的Timer0的计时问题,TH0、TL0+1的时间是怎么算的?
1253 浏览 1 评论
【RA-Eco-RA4E2-64PIN-V1.0开发板试用】开箱+Keil环境搭建+点灯+点亮OLED
848 浏览 0 评论
【敏矽微ME32G070开发板免费体验】使用coremark测试敏矽微ME32G070 跑分
853 浏览 0 评论
【敏矽微ME32G070开发板免费体验】开箱+点灯+点亮OLED
1073 浏览 2 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
12010 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-22 21:35 , Processed in 0.461582 second(s), Total 47, Slave 39 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号