EEWorld 电子工程世界

文章数:8619 被阅读:5830529

账号入驻

干货 | 我是如何将51代码转为STM32驱动代码的

最新更新时间:2022-08-04
    阅读数:

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

小哈哥的网友有问题了,正好小哈哥有时间,你有需求,小哈哥给安排上。

问题由来

网友问答

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端
CLKPC3
DINPC2
DCPC1
CEPC0
RSTPC5
VCC3.3V
BL3.3V
GNDGND

模块尺寸

程序移植

小哈哥之前用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:");

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

源码获取/素材获取

点击阅读原文,获取测试Demo源码。

结果展示

总结

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

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

怎么样?还是挺简单的吧?如果你有STM32的代码,想转为51单片机的代码也是一样的。



添加微信回复“进群”

拉你进技术交流群!

国产芯|汽车电子|物联网|新能源|电源|工业|嵌入式…..  

众号内回复您想搜索的任意内容,如问题关键字、技术名词、bug代码等,就能轻松获得与之相关的专业技术内容反馈。快去试试吧!


如果您想经常看到我们的文章,可以进入我们的主页,点击屏幕右上角「三个小点」,点击「设为星标」。

欢迎扫码关注

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: TI培训

北京市海淀区知春路23号集成电路设计园量子银座1305 电话:(010)82350740 邮编:100191

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2022 EEWORLD.com.cn, Inc. All rights reserved