#技术资源# #申请原创# 最近在移植u8g2程序,手上就一块老的掉牙的Nokia5110 LCD,还不知道好坏,在移植完u8g2后不能确定是程序问题还是液晶本身问题,正好手上有AT32F425的 板子,可以来试试液晶的好坏,顺便来篇测评。 先来看看这款LCD的简介 在来看一下时序 这个时序符合SPI的时序,使用SPI单发送模式再配合IO即可实现这款LCD的驱动。像这样的LCD一般有两种方式,一种是用SPI+IO的方式,还有就是纯IO方式。 我再上述两种方式之上,我又将SPI+IO的方式,扩展为SPI(硬件CS模式)+IO的方式和SPI(软件CS模式)+IO的方式,我们来看一下CS模式的介绍 尽管描述的比较详细,但还是比较抽象的,只有在实际调试后才能理解。简单总结为(CS输出时),使用硬件模式后,只要SPI使能,CS管脚就会拉低,关闭SPI后释放CS(注意是释放而不是拉高)。 接下来我对源码进行讲解,我在网上下载了一份驱动代码,在此基础上进行了修改,下载的代码是使用51单片机,用IO模式的通信协议,我在此基础上修改为使用AT32F425的2.0库的IO模式方式和硬件SPI方式 main.c ----存放IO初始化和液晶初始化函数 nokia5110.c----存放的是LCD的驱动源码 nokia5110.h----驱动源码的头文件 另外3个.h文件是字库文件 nokia5110.h内的3个宏定义分别对应3种LCD控制方式 SPI使用的是PA4 PA5 PA6PA7,在初始化配置时需要重映射功能。 这里重点说明一下,在使用CS硬件模式时,CS脚需要外加上拉电阻,因为硬件CS模式释放CS脚时是不提供上拉的,不加上拉电阻,无法实现高电平。 上述配置详细介绍 对LCD需要用的RST 和DC控制引脚配置 最终实现LCD的驱动的3种方式,效果如下
|