OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 7899|回复: 26

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

[复制链接]

17

主题

142

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
230
金钱
230
注册时间
2013-6-27
在线时间
0 小时
发表于 2014-7-17 00:19:44 | 显示全部楼层 |阅读模式
5金钱

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

我现在的需求是,需要从DSP的串口里读数,然后在240128液晶上画上坐标轴,并画图。我考虑过51,可是貌似不能硬件仿真,有些能硬件仿真,可是要占用串口,我知道的51核的都是只有一个串口比如ADUC845,这个串口我要从DSP里接收数据啊。
小弟恳请各位高手指点一二
谢谢各位,

最佳答案

查看完整内容[请看2#楼]

找到问题了,至少现在能显示了,看来stm32可以驱动5V的240128液晶(控制器T6963C)。我不是直接驱动,我用了74LVC4245逻辑电平转换芯片,谢谢各位的热心帮助! 还有定位坐标的问题,在新帖子里和大家探讨。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

17

主题

142

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
230
金钱
230
注册时间
2013-6-27
在线时间
0 小时
 楼主| 发表于 2014-7-17 00:19:45 | 显示全部楼层
找到问题了,至少现在能显示了,看来stm32可以驱动5V的240128液晶(控制器T6963C)。我不是直接驱动,我用了74LVC4245逻辑电平转换芯片,谢谢各位的热心帮助!
还有定位坐标的问题,在新帖子里和大家探讨。
回复

使用道具 举报

120

主题

7878

帖子

13

精华

资深版主

Rank: 8Rank: 8

积分
12012
金钱
12012
注册时间
2013-9-10
在线时间
427 小时
发表于 2014-7-17 08:03:33 | 显示全部楼层
1、抓液晶时序看下对不对,上电时候或者是工作过程中。
2、12864这么慢移植到STM32上面都可以,你这个估计也不是很难,慢慢琢磨一下呗,呵呵
现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
回复

使用道具 举报

17

主题

142

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
230
金钱
230
注册时间
2013-6-27
在线时间
0 小时
 楼主| 发表于 2014-7-17 09:10:57 | 显示全部楼层
附件是我的时序图
您看我这对吗?
由于液晶是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++);
}
本人对时序也不是很明白,您看我这个时序对吗?谢谢您!
时序.bmp
回复

使用道具 举报

17

主题

142

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
230
金钱
230
注册时间
2013-6-27
在线时间
0 小时
 楼主| 发表于 2014-7-17 09:11:36 | 显示全部楼层
回复【2楼】Badu_Space:
---------------------------------
麻烦您看看我这时序对吗?我自己也不是十分明白,谢谢您
回复

使用道具 举报

17

主题

142

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
230
金钱
230
注册时间
2013-6-27
在线时间
0 小时
 楼主| 发表于 2014-7-17 09:13:52 | 显示全部楼层
各位还有没有什么经验,请指点,我自己也是第一次使用240128液晶,厂商说的我买的液晶主频只有5MHz,说我要多加延时,就像我前面说的问题一大堆。
回复

使用道具 举报

17

主题

142

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
230
金钱
230
注册时间
2013-6-27
在线时间
0 小时
 楼主| 发表于 2014-7-17 09:38:03 | 显示全部楼层
求各位指点啊,这个液晶我调了一个多星期了,一直没有稳定,一直不能显示任何字母数字,都开始怀疑自己了。。。。。。想听听各位大神的意见
回复

使用道具 举报

233

主题

961

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1814
金钱
1814
注册时间
2011-10-9
在线时间
230 小时
发表于 2014-7-17 10:34:33 | 显示全部楼层
1. 5V 240128屏可以直接接 stm32 无需电平转换 
 2. 时序需要做一点点延时 也就是一点点 delay_us(1)
 3. 全部数据 控制 地址线  加上上拉电阻 103

还不行 检查硬件连接  检查程序时序
回复

使用道具 举报

17

主题

142

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
230
金钱
230
注册时间
2013-6-27
在线时间
0 小时
 楼主| 发表于 2014-7-17 10:51:09 | 显示全部楼层
回复【7楼】simms01:
---------------------------------
首先谢谢您,我还有点问题
1.不需要电平转换?这样貌似有烧掉M3的危险
2.加上拉电阻10k到5V还是3.3V?
3.只需要一点点延时就是1us或者几个us?
回复

使用道具 举报

120

主题

7878

帖子

13

精华

资深版主

Rank: 8Rank: 8

积分
12012
金钱
12012
注册时间
2013-9-10
在线时间
427 小时
发表于 2014-7-17 11:57:56 | 显示全部楼层
回复【8楼】superayr:
---------------------------------
1、你的屏幕供电是多上的?
2、STM32有一些管脚是兼容5V电平的
3、看到你发的代码,没看到管脚控制之间加入延时,其实你可以搜索论坛12864的程序参照下人家的时序怎么延时的,对应你的屏幕程序来做延时即可
现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
回复

使用道具 举报

17

主题

142

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
230
金钱
230
注册时间
2013-6-27
在线时间
0 小时
 楼主| 发表于 2014-7-17 12:28:43 | 显示全部楼层
回复【9楼】Badu_Space:
---------------------------------
屏幕是5V的。我先找找看看
回复

使用道具 举报

17

主题

142

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
230
金钱
230
注册时间
2013-6-27
在线时间
0 小时
 楼主| 发表于 2014-7-17 18:05:43 | 显示全部楼层
回复【9楼】Badu_Space:
---------------------------------
http://www.openedv.com/posts/list/6601.htm
http://www.openedv.com/posts/list/3254.htm
这两个的时序我都参考了,还有延时,结果......感觉可能就是延时的问题,但是,t6963c的控制指令比较多,一直调不出来。
问题依然是比如上电乱码,写不进去ASCII码,有时候光标的形状都不对,每次断电再上电,液晶屏反应都不一样
回复

使用道具 举报

17

主题

142

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
230
金钱
230
注册时间
2013-6-27
在线时间
0 小时
 楼主| 发表于 2014-7-17 22:50:35 | 显示全部楼层
论坛里的给位高手给点建议啊,东芝的t6963c做控制器的液晶
回复

使用道具 举报

120

主题

7878

帖子

13

精华

资深版主

Rank: 8Rank: 8

积分
12012
金钱
12012
注册时间
2013-9-10
在线时间
427 小时
发表于 2014-7-18 07:58:15 | 显示全部楼层
回复【11楼】superayr:
---------------------------------
没用过,也只能帮顶了。。。
现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
回复

使用道具 举报

11

主题

60

帖子

0

精华

初级会员

Rank: 2

积分
142
金钱
142
注册时间
2014-4-18
在线时间
4 小时
发表于 2014-7-18 08:23:55 | 显示全部楼层
我的240160  3.3V的  挺好的啊
回复

使用道具 举报

11

主题

60

帖子

0

精华

初级会员

Rank: 2

积分
142
金钱
142
注册时间
2014-4-18
在线时间
4 小时
发表于 2014-7-18 08:25:00 | 显示全部楼层
控制器是ST7529
回复

使用道具 举报

17

主题

142

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
230
金钱
230
注册时间
2013-6-27
在线时间
0 小时
 楼主| 发表于 2014-7-18 08:57:44 | 显示全部楼层
回复【15楼】咚咚:
---------------------------------
求程序,谢谢您
回复

使用道具 举报

17

主题

142

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
230
金钱
230
注册时间
2013-6-27
在线时间
0 小时
 楼主| 发表于 2014-7-18 09:00:36 | 显示全部楼层
回复【15楼】咚咚:
---------------------------------
qq531428513
回复

使用道具 举报

11

主题

60

帖子

0

精华

初级会员

Rank: 2

积分
142
金钱
142
注册时间
2014-4-18
在线时间
4 小时
发表于 2014-7-18 09:10:31 | 显示全部楼层
回复【17楼】superayr:
---------------------------------
控制器一样么
回复

使用道具 举报

17

主题

142

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
230
金钱
230
注册时间
2013-6-27
在线时间
0 小时
 楼主| 发表于 2014-7-18 09:16:29 | 显示全部楼层
回复【18楼】咚咚:
---------------------------------
我大概看了一下,控制指令有些不用,但是控制时序基本一样,能将您的代码发过来让我学习一下吗,谢谢
回复

使用道具 举报

17

主题

142

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
230
金钱
230
注册时间
2013-6-27
在线时间
0 小时
 楼主| 发表于 2014-7-18 09:29:49 | 显示全部楼层
回复【18楼】咚咚:
---------------------------------
谢谢您了,我学习一下,
        WriteCommand(0x15); //Column Address Set
WriteData(0x00); //Start Column = 0
WriteData(0x4f); //End Colum = 79
LcdDelay(5);
这个就是一条完整的控制指令,两个参数0x00,0x4f,一个指令0x15,是这样吗?
回复

使用道具 举报

11

主题

60

帖子

0

精华

初级会员

Rank: 2

积分
142
金钱
142
注册时间
2014-4-18
在线时间
4 小时
发表于 2014-7-18 09:31:37 | 显示全部楼层
回复【20楼】superayr:
---------------------------------
忘了 你看下ST7529的PDF  上面都有
回复

使用道具 举报

17

主题

142

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
230
金钱
230
注册时间
2013-6-27
在线时间
0 小时
 楼主| 发表于 2014-7-18 09:31:51 | 显示全部楼层
回复【19楼】superayr:
---------------------------------
您的LCD_RD_SETPORT类似这样的定义在LCD.里没有啊
回复

使用道具 举报

11

主题

60

帖子

0

精华

初级会员

Rank: 2

积分
142
金钱
142
注册时间
2014-4-18
在线时间
4 小时
发表于 2014-7-18 09:32:23 | 显示全部楼层
回复【22楼】superayr:
---------------------------------
就是设置的IO管脚啊
回复

使用道具 举报

17

主题

142

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
230
金钱
230
注册时间
2013-6-27
在线时间
0 小时
 楼主| 发表于 2014-7-18 09:34:58 | 显示全部楼层
回复【23楼】咚咚:
---------------------------------
嗯,我知道,我的意思是没有看见你的宏定义,用的哪个引脚的
回复

使用道具 举报

17

主题

142

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
230
金钱
230
注册时间
2013-6-27
在线时间
0 小时
 楼主| 发表于 2014-7-18 13:31:50 | 显示全部楼层
每次断了电再上电,液晶显示都不一样(就算是乱码也乱的不一样),这个可能除了240128,其他液晶也与遇到过,这可能是哪里有问题?
求指点
回复

使用道具 举报

221

主题

501

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1238
金钱
1238
注册时间
2013-1-9
在线时间
121 小时
发表于 2017-1-22 16:56:53 | 显示全部楼层
superayr 发表于 2014-7-17 00:19
找到问题了,至少现在能显示了,看来stm32可以驱动5V的240128液晶(控制器T6963C)。我不是直接驱动,我用 ...

楼主的数据线跟控制线有没有都接上拉电阻?
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-6 19:14

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表