OpenEdv-开源电子网

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

STM32如何驱动ST7567控制器的12848液晶

[复制链接]

60

主题

153

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
369
金钱
369
注册时间
2013-12-23
在线时间
32 小时
发表于 2014-3-20 16:04:26 | 显示全部楼层 |阅读模式
想用SPI来做LCD的显示,现在能做到的就是点亮LCD上的橙色LED灯,其他的都不显示,ST7567是英文的,看不太懂,只知道要用到RS,RST,CS,CLK,SDA,但是SDA接SPI2的DO脚,CLK接SPI2的CLK脚RS和RST分别接在PC4和PC5上,现在对LCD的初始化不是很明白,根据网上的例子这样进行的初始化

void initial_lcd()
{
    LCD_CS_RESET;
    LCD_RST_RESET;        /*低电平复位*/
    delay(20);
    LCD_RST_SET ;            /*复位完毕*/
    delay(20);       
    Lcdwritecom(0xe2);     /*软复位*/
    delay(5);
    Lcdwritecom(0x2c);  /*升压步聚1*/
    delay(5);    
    Lcdwritecom(0x2e);  /*升压步聚2*/
    delay(5);
    Lcdwritecom(0x2f);  /*升压步聚3*/
    delay(5);
    Lcdwritecom(0x24);  /*粗调对比度,可设置范围0x20~0x27*/
    Lcdwritecom(0x81);  /*微调对比度*/
    Lcdwritecom(0x20);  /*0x28,微调对比度的值,可设置范围0x00~0x3f*/
    Lcdwritecom(0xa2);  /*1/9偏压比(bias)*/
    Lcdwritecom(0xc8);  /*行扫描顺序:从上到下*/
    Lcdwritecom(0xa0);  /*列扫描顺序:从左到右*/
    Lcdwritecom(0x40);  /*起始行:第一行开始*/
    Lcdwritecom(0xaf);  /*开显示*/
    LCD_CS_SET;
}

然后是写命令和数据

void Lcdwritecom(uint8_t com)
{
    LCD_CS_RESET;        //片选拉低,选中LCD
    LCD_RS_RESET;        //设置为写命令
    SPI_SendData(com);
    LCD_CS_SET;            //片选拉高,释放LCD
}

void Lcdwritedata(uint8_t dat)
{
    LCD_CS_RESET;    //片选拉低,选中LCD
    LCD_RS_SET;        //设置为写数据
    SPI_SendData(dat);
    LCD_CS_SET;        //片选拉高,释放LCD
}
还有就是显示的一些函数
不知道哪些地方可能出了问题请教一下
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165475
金钱
165475
注册时间
2010-12-1
在线时间
2115 小时
发表于 2014-3-20 17:35:03 | 显示全部楼层
回复 支持 反对

使用道具 举报

120

主题

7878

帖子

13

精华

资深版主

Rank: 8Rank: 8

积分
12012
金钱
12012
注册时间
2013-9-10
在线时间
427 小时
发表于 2014-3-21 08:30:44 | 显示全部楼层
SPI的速度不能太高
现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
回复 支持 反对

使用道具 举报

3

主题

2178

帖子

2

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
3323
金钱
3323
注册时间
2013-7-19
在线时间
195 小时
发表于 2014-3-21 08:33:40 | 显示全部楼层
英文PDF关要过,各种器件几乎都是英文的。
ST7565R的驱动我有,跟你这个可能不太一样
回复 支持 反对

使用道具 举报

60

主题

153

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
369
金钱
369
注册时间
2013-12-23
在线时间
32 小时
 楼主| 发表于 2014-3-21 10:43:52 | 显示全部楼层
昨天晚上仔细看了一下pdf大致理解了st7567初始化的过程,和我写的关键地方基本一致,请教一下楼上,ST7565R和他的写命令和数据的函数是否一致,清屏方式是否一致?原来我的SPI设置的是2分频我试着调小了但好像还是不行
回复 支持 反对

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
21
金钱
21
注册时间
2014-4-4
在线时间
0 小时
发表于 2014-4-4 08:23:58 | 显示全部楼层
回复【5楼】csf4824521:
--------------------------------
我也在用ST7567, 现在遇到了一样的问题啊。请问你是怎么解决的,怎么让LCD亮起来的啊?
回复 支持 反对

使用道具 举报

58

主题

499

帖子

4

精华

金牌会员

Rank: 6Rank: 6

积分
1920
金钱
1920
注册时间
2013-11-18
在线时间
268 小时
发表于 2014-4-4 10:21:54 | 显示全部楼层
我也写过ST7567的驱动,楼主可以参加下,ST7567还有个A0信号线,来切换控制指令还是数据指令的

ST7567.rar

3.39 KB, 下载次数: 4767

已经放下多年的FPGA,要重新再拾起来,却是如此的陌生
回复 支持 反对

使用道具 举报

60

主题

153

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
369
金钱
369
注册时间
2013-12-23
在线时间
32 小时
 楼主| 发表于 2014-4-7 17:52:21 | 显示全部楼层
谢谢6楼的朋友,我早些天已经测试通过了,5楼的朋友,我在我的另一个提问题帖子"还是关于ST7567...."中贴出了我的代码,使用库函数写的可能会比较容易理解一点,希望对你有帮助
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-5-12 17:01

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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