移植Nokia5110屏驱动 | 我是如何将51代码转为STM32驱动代码的

大家好,我是程序员小哈。

– 简介

问题由来

网友问答

NOKIA 5110 屏

Nokia5110屏是一个非常经典的液晶显示模块,在小哈哥玩单片机的时候,可选的液晶模块并不多,一般来说就是LCD1602、LCD12864,这个Nokia5110屏在我当时来看,是相当高级的一个液晶屏了。

Nokia/诺基亚5110 屏是用在5110、6150,6100 等系列移动电话上的液晶显示模块,国内厂家也生产有类似的兼容产品。该产品除应用于移动电话外,也可广泛应用于各类便携式设备的显示系统。单片机控制显示,人机交互界面显示,数据采集显示等电子设计场合。

Nokia5110手机

规格参数

工作电压:DC3.3-5.0V
屏幕颜色:单色
分辨率:84*48,字符:6*8字符的话,可以显示6行字符,每行14个字符
通信方式:串行SPI接口
液晶模块:LPH7366
运用场合:单片机检测信息显示,人机交互界面开发等电子设计
外形尺寸:45x43x1.6mm

管脚定义

名称 含义
CLK 串行时钟线
DIN 串行数据线
DC 数据/指令选择
CE 片选
RST 复位
VCC 电源输入(3.3V和5V均可)
BL 背光控制端
GND 地线

模块原理图

网上找的一个模块原理图

实际硬件连接

Nokia 5110端 STM32端
CLK PC3
DIN PC2
DC PC1
CE PC0
RST PC5
VCC 3.3V
BL 3.3V
GND GND

模块尺寸

程序移植

小哈哥之前用51单片机驱动过这个液晶屏,实际使用只需要五个IO引脚即可驱动。

我们今天就看看,如果网上找不到你所用芯片的例程,只有别的芯片的例程你怎么参考呢?下面咱们就来移植一下。

拷贝驱动文件

将液晶屏的驱动文件拷贝到STM32工程下的HARDWARE目录下,并在STM32的工程中添加文件。

添加GPIO初始化函数

void lcd_gpio_init(void)
{
	GPIO_InitTypeDef  GPIO_InitStructure;
 	
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE);
	
	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_5;
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
	GPIO_Init(GPIOC, &GPIO_InitStructure);
}

修改GPIO操作的宏定义

//51单片机
//sbit LCD_RST=P0^0;
//sbit LCD_CE=P0^1;
//sbit LCD_DC=P0^2;
//sbit LCD_DIN=P0^3;
//sbit LCD_CLK=P0^4;

//STM32单片机
#define LCD_RST PCout(5)
#define LCD_CE PCout(0)
#define LCD_DC PCout(1)
#define LCD_DIN PCout(2)
#define LCD_CLK PCout(3)

修改1us的延时

#define Wait1us delay_us(1)

函数调用

//Nokia5110初始化
lcd_gpio_init();
lcd_init();
lcd_clear(); //清屏幕

lcd_string(0,0,"Time:");

编译程序,没有错误,下载程序,发现屏幕中可以正常显示预设内容,证明驱动已经移植成功了。

源码获取/素材获取

公众号后台回复关键字:Nokia5110,获取测试Demo源码。

结果展示

视频展示

总结

这次测试用的杜邦线,杜邦线虽然方便,但是一碰,屏幕显示输出就没有了,只能重新插拔,复位单片机,很是无语。

另外还要注意,有的时候,杜邦线接触不是很好,在测试程序的时候,首先要保证杜邦线的接触良好,大家不确认的话,可以使用万用表蜂鸣器档,测测每个引脚的两端是否导通。

怎么样?还是挺简单的吧?本文有没有收获?可以文末留言交流一下哈,或者加小哈哥微信,我们群里聊。

好了,今天的文章内容到这里就结束了,希望对你有帮助,我们下一期见!~

如果想了解小哈哥的知识星球,可以点击下面链接查看球友的福利,我们可以一起交流、一起玩耍。

知识星球简介链接:
https://mp.weixin.qq.com/s/hjhOedO9prE2tmLH4zO9vA?scene=25#wechat_redirect

猜你喜欢

转载自blog.csdn.net/rsd102/article/details/121899535