发新帖本帖赏金 10.00元(功能说明)我要提问
返回列表
打印
[APM32E1]

【APM32E103xE测评】+ 驱动SPI接口液晶屏

[复制链接]
1668|11
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
#申请原创#
手里有几片3.3V256*96点阵液晶屏,是准备用于诸如STM32之类的开发板用的显示部件。主要是为了调试程序的时候方便查看调试信息以及中间处理结果。这块液晶屏采用SPI接口模式,分辨率为256*96像素,使用16*16点阵显示汉字的话,一屏可以显示16*6行汉字。由于液晶屏没带字库,需要自己建立。只需要把程序中用到的汉字的点阵数据保存到文件中。
程序中用到的时候,通过检索匹配的汉字,找到点阵数据,按照一定的格式发送给液晶屏,显示出来即可。需要特别说明的是,点阵数据一定要以匹配液晶内部要求的方式,否则屏幕上现实的不是汉字,而是杂乱的点。这块液晶屏使用以下几个口线驱动:
SCK ---- 传送数据、指令用的时钟脉冲。上升沿数据有效。
SDA ---- 串行传递的数据,高位在前,低位在后的模式传送。
CS  ---- 片选信号,当需要传递数据、指令给液晶屏时,要设置为“1
RESET ---- 复位信号,“0”有效,要保证200毫秒以上才有效。否则液晶屏不会正常工作。
RS ---- 用来设置发送给液晶屏的数据是指令还是数据。RS=0时,表示是指令; RS=1时,表示为数据。
剩下的是VDD3.3V),GND,以及背景LED灯电源LED+
液晶的显示缓冲区与屏幕的映射见下图:
实际上,纵向上每8个像素行为一页。
数据传送时序特性:
上电复位时序:
我这里为了快速处理,使用PE6-PE3,以软件模拟的方式驱动液晶。之前用51单片机驱动液晶已经成功,所以相信这块开发板也肯定没有问题。
简单地把51下的程序修改一下,加入到工程中。原以为绝对不会有问题,结果打脸了,竟然没有任何显示。第一个感觉,肯定是时序出问题了。51单片机的时候,系统主频是27MHz,而极海的开发板的主频是120MHz。是不是脉冲宽度太小,不符合液晶屏的时序要求?光看程序看不出问题了,只好上示波器查看、对比了。简单修改下程序,在主循环处理中加入SCKSDACSRESETRS的输出脉冲操作。
先看看51单片机下,SCK的时钟宽度,确认为1微秒不到。转到极海开发板上,咦,只有两个GPIO口有脉冲信号,其他三个没有脉冲信号。难道是没执行GPIO的初始化处理?或者GPIO被其他程序用了?马上检查程序,发现关联的GPIO口初始化处理确实没有被执行。由于开发板上已经使用PE6PE5LED2LED3用了,使用的工程模板为LED翻转显示的那个,工程中已经对PE6PE5初始化了,所以这两个GPIO有脉冲输出。其他三个没有初始化,所以就没有输出。接下来除了把GPIO的初始化处理加上,同时调整数据,使微秒和毫秒的延时更准确一些。这些修改完成后,编译程序、下载代码,复位开发板,哈哈哈,液晶上已经正常显示出数据了。
经过这次的测试,发现示波器的重要性了。由于不同开发板工作的主频不一致,在开发时,为了匹配外部设备的通讯时序,必须配合外部设备,调整参数,以获得正确的通信时序。这个时候,如果没有示波器、逻辑分析仪,是真办法的。另外一点是,遇到问题别着急,把问题揉开掰碎成一个一个小问题,逐步检查,确认问题点在哪里。就像这次,当液晶不显示的时候,按照以下步骤检查:
1、液晶有没有问题?回到51开发板上确认。
2、程序处理逻辑、通讯指令、数据是否有问题。
3、各个IO接口能否产生信号。这个即使没有示波器,也可以通过万用表、LED检查。
4、信号的时序是否正常、脉冲宽度是否正常。这个需要配合程序,以及使用示波器、逻辑分析仪之类的设备来配合了。
跌跌撞撞地,终于用软件把GPIO模拟为SPI的方式驱动液晶屏成功了。下一步试试用SPI及串口方式驱动看看。


使用特权

评论回复

打赏榜单

21小跑堂 打赏了 10.00 元 2022-05-11
理由:恭喜通过原创文章审核!请多多加油哦!

评论
21小跑堂 2022-5-11 13:49 回复TA
基于APM32E103的模拟SPI方式驱动液晶屏,可移植性较高。开发板上进行测试一定要注意源工程中的一些LED和按键等默认初始化GPIO。 
沙发
caigang13| | 2022-5-5 21:20 | 只看该作者
墨水屏就是有点贵

使用特权

评论回复
评论
suncat0504 2022-5-6 07:00 回复TA
嗯,的确,但我这个是一般的点阵液晶。实用就好,没必要追求贵的。 
板凳
weifeng90| | 2022-5-6 07:45 | 只看该作者
这个不是墨水屏吧

使用特权

评论回复
评论
suncat0504 2022-5-6 14:01 回复TA
非常普通的点阵液晶 
地板
macpherson| | 2022-6-2 09:34 | 只看该作者
驱动的速度还可以的吧。     

使用特权

评论回复
5
sdlls| | 2022-6-2 11:55 | 只看该作者
液晶屏刷新怎么样?

使用特权

评论回复
6
uiint| | 2022-6-2 15:12 | 只看该作者
是硬件spi吗、

使用特权

评论回复
评论
suncat0504 2022-6-2 15:26 回复TA
不是硬件SPI。但硬件SPI是没问题的。这个MCU的SPI控制很灵活,能驱动SPI液晶。 
7
suzhanhua| | 2022-7-9 14:27 | 只看该作者
为什么不用lcd呢   

使用特权

评论回复
8
cemaj| | 2022-7-9 17:24 | 只看该作者
刷新频率可以到多少呢  

使用特权

评论回复
发新帖 本帖赏金 10.00元(功能说明)我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

认证:大连伊飞特信息技术有限公司软件工程师
简介:本人于1993年毕业于大连理工大学。毕业后从事单片机开发工作5年,之后转入软件开发工作至今。

135

主题

3975

帖子

5

粉丝