stm32控制240128液晶出错,是主频问题?

2019-10-15 06:11发布


我用stm32控制240128液晶(5V),总是出乱码,人家液晶厂商的工程师说stm32主频太高,
让我加延时。为了和液晶电平吻合,我还使用了74LVC4245逻辑电平转换芯片,液晶接口的电压,我用万用表测过,是5V。我把stm32降频到24MHz,多加延时还是有很多问题,比如上电乱码,写不进去ASCII码,有时候光标的形状都不对,每次断电再上电,液晶屏反应都不一样。他们说一般用51,或者主频低一点的MCU。

我现在的需求是,需要从DSP的串口里读数,然后在240128液晶上画上坐标轴,并画图。我考虑过51,可是貌似不能硬件仿真,有些能硬件仿真,可是要占用串口,我知道的51核的都是只有一个串口比如ADUC845,这个串口我要从DSP里接收数据啊。
小弟恳请各位高手指点一二
谢谢各位,
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
26条回答
superayr
1楼-- · 2019-10-15 09:54
找到问题了,至少现在能显示了,看来stm32可以驱动5V的240128液晶(控制器T6963C)。我不是直接驱动,我用了74LVC4245逻辑电平转换芯片,谢谢各位的热心帮助!
还有定位坐标的问题,在新帖子里和大家探讨。
八度空间
2楼-- · 2019-10-15 14:11
1、抓液晶时序看下对不对,上电时候或者是工作过程中。
2、12864这么慢移植到STM32上面都可以,你这个估计也不是很难,慢慢琢磨一下呗,呵呵
superayr
3楼-- · 2019-10-15 18:45
附件是我的时序图
您看我这对吗?
由于液晶是5V逻辑电平,我用了74LVC4245逻辑电平转换芯片
//写数据引脚配置函数
void Write_Data_Config(void)
{
u16 i;
GPIO_ResetBits(GPIOC, GPIO_Pin_4);//DIR1=0
GPIO_ResetBits(GPIOC, GPIO_Pin_3);//OE1=0
GPIO_ResetBits(GPIOB, GPIO_Pin_12);//DIR2=0
GPIO_ResetBits(GPIOB, GPIO_Pin_13);//OE2=0//以上四行是对74LVC4245的引脚控制
for(i=0;i<2400;i++);
GPIO_ResetBits(GPIOB, GPIO_Pin_15);//C/D=0
for(i=0;i<240;i++);
GPIO_ResetBits(GPIOC, GPIO_Pin_6);//CE=0
GPIO_SetBits(GPIOC, GPIO_Pin_7);//RD=1
GPIO_ResetBits(GPIOC, GPIO_Pin_8);//WR=0
for(i=0;i<240;i++);
}
//写入一个数据
void LcmWriteData(u8 uData)
{
u8 RealData;
u16 i;
CheckRWCD();
RealData=Reverse(uData);
RealData|=0x0000;
Write_Data_Config();
GPIO_Write(GPIOA, RealData);
for(i=0;i<240;i++);
GPIO_SetBits(GPIOC, GPIO_Pin_8);//WR=1
GPIO_SetBits(GPIOC, GPIO_Pin_6);//CE=1
for(i=0;i<240;i++);
}
本人对时序也不是很明白,您看我这个时序对吗?谢谢您!
superayr
4楼-- · 2019-10-15 21:04
回复【2楼】Badu_Space:
---------------------------------
麻烦您看看我这时序对吗?我自己也不是十分明白,谢谢您
superayr
5楼-- · 2019-10-16 03:03
 精彩回答 2  元偷偷看……
superayr
6楼-- · 2019-10-16 08:25
求各位指点啊,这个液晶我调了一个多星期了,一直没有稳定,一直不能显示任何字母数字,都开始怀疑自己了。。。。。。想听听各位大神的意见

一周热门 更多>