基于STM32F1自写移植代码分享系列之0.96寸OLED模块

基于STM32F1自写移植代码分享系列之0.96寸OLED模块


作者QQ:758727101
代码有BUG可以向我反馈以便我可以对代码进行更新。

原创不易,转载请注明出处

OLED模块体积小巧,使用方便,是一个很优秀的显示器。在我们调试代码中是一个很方便的使用的模块,在我们每次创建一个新的工程,都需要从商家给的oled模块驱动代码添加进我们的工程,商家提供的代码我们使用起来并不方便,所以作者从方便调用的角度出发,为了应对对于不同的使用环境,尽可能的对源码做较少修改就能驱动并使用oled模块,所以自写了oled模块的移植代码,方便大家使用。

文件获取

二话不说,先提供代码文件。
链接:https://pan.baidu.com/s/1Q7ppKRy5eIw9EB9BwYmN9g
提取码:r17q

把文件解压后,可以看见这么一个文件夹
解压后的文件夹
文件夹中总共有6个文件,3个.c文件,和3个.h文件
文件夹中的文件
使用方法很简单,把文件添加入要使用的工程即可。
文件添加到工程里后就是这样子的
文件添加入工程后的样子
三个.c文件都需要添加进去,添加完后别忘了添加文件路径。

文件使用方法

文件都添加好后,现在我们来介绍一下这个代码如何使用。
在工程中双击打开oled.c文件
在这里插入图片描述
然后我们再进入oled.h文件
在这里插入图片描述

参数配置

我们只需要配置好oled.h文件里的参数,再调用函数就可以很方便的使用oled模块了
首先,我们先看第一个需要配置的参数
第一个参数配置,接口类型
常用的oled模块有两种接口,一种是IIC接口,另一种是SPI接口,IIC接口好处是使用的IO引脚少,除去VCC和GND引脚,我们只需要2个IO口就能驱动OLED模块;而SPI接口的需要5个IO口控制,若将使能端口CS接GND也还是需要4个IO口才能驱动OLED模块。但是,SPI接口的好处是有复位端口RES,在单片机重新上电的时候,模块可能会不工作,需要复位单片机后才能正常工作,IIC接口的没有复位端口,必须复位单片机,而SPI接口的有复位端口,可以通过复位端口使OLED模块在不复位单片机的情况下正常工作。
如图,我们通过改变宏定义的数值使代码与我们实际使用的oled模块的接口对应起来。
在这里插入图片描述
第二个参数配置,显示模式:
显示模式就是选择白字黑底,还是黑字白底,选择白字黑底的功耗会稍微低一些,而黑字白底更接近于我们现实中在白纸上写字,故在不考虑功耗的情况下建议选择感觉比较友好的黑字白底。设置方法和上面一样,通过改变宏定义的数值来设定。
第三个参数配置,是否使用IO口作为OLED模块电源:
因为OLED模块的驱动电流小,故我们可以使用IO口来给模块供电。
参数配置成1,我们使用IO口作为电源,2则不使用。
在这里插入图片描述

引脚配置

三个参数配置完成后,我们开始配置模块的IO引脚
接口类型我们选择IIC接口的话,我们只需要配置2个引脚,每个引脚需要配置3处地方,引脚时钟,组别,还有引脚号
在这里插入图片描述
接口类型我们选择SPI接口的话,我们需要配置全部5个引脚,每个引脚需要配置3处地方,引脚时钟,组别,还有引脚号在这里插入图片描述
如果我们配置了使用IO口给模块供电,则我们需要配置作为VCC和GND的引脚
在这里插入图片描述

函数介绍

参数配置和引脚配置完毕后,我们就快乐的可以调用函数来使用OLED模块了
下面是可以调用的函数
包含一个必须调用的初始化函数和6个功能函数
在这里插入图片描述
接下来我们来依次讲解这些函数如何使用

函数说明

第一个函数
OLED模块的初始化函数
在这里插入图片描述
该函数主要是配置IO引脚和调用OLED模块的驱动代码,所以是必须调用的。
例如这样调用
在这里插入图片描述
第二个函数
OLED清屏函数,调用此函数后,OLED模块会根据显示模式设置来将屏幕清屏为全白或全黑
在这里插入图片描述
第三个函数
在指定位置显示一个字符英文字符,详情看注释即可
在这里插入图片描述
第四个函数
在指定位置显示整数数字,数字可以为负数,详情看注释即可
在这里插入图片描述
第五个函数
在指定区域显示图片,图片的大小要和选择的区域一致,否则会出错,详情看注释即可
在这里插入图片描述
第六个函数
显示一个12864大小的图片,因为在平时使用中,我们显示图片一般都是12864大小的,所以为了加方便的调用图片显示函数,所以我专门为显示12864大小的图片单独写了一个函数。
在这里插入图片描述
第七个函数
字符串显示函数,这个函数最常使用,所以我们重点介绍。
在这里插入图片描述
前两个参数是设置显示的起点,第三个参数是一个字符串指针,我们需要把要显示的字符串的地址写进去即可,第四个参数是设置字符串的字体大小,支持8
6和1616字体,我们86字体填8,16*16字体填16。
重点来了,这个函数是支持显示汉字的,只要要显示的汉字在oled_font.c文件里有登记,就可以显示出来。
我们打开oled_font.c文件,文件里最下面可以看见已经登记了的汉字。
在这里插入图片描述

汉字登记方法

关于登记汉字的方法,这里使用的是PCtoLCD2002软件,这个软件单片机资料的软件里都会放有,这里我也提供一下资源
链接:https://pan.baidu.com/s/15rqqVBmQcZOGLnaKEE6r8Q
提取码:21pc
打开软件,先把模式改为字符模式,然后我们再配置选项在这里插入图片描述
配置说在oled_font.c文件的最上面写有
在这里插入图片描述
配置完成后,生成字模的左边框里写入汉字,然后点击生成字模即可。在这里插入图片描述
将生成的字模中除了第一行外的代码复制到登记汉字的数组里即可
在这里插入图片描述
这里我们可以调整一下格式,这样更加美观。至此汉字已经登记完毕了。

代码测试

接下来我们实际测试一下代码,使用测试图片1来测试OLED模块能不能正常工作。我们把这段代码下载到单片机里,这里我们使用IO口给模块供电,总共使用了PB3-PB9七个引脚,大家使用时请确保IO口是可以正常控制的,如果某些模块用到的IO口不能正常控制的话,模块可能会无法工作,检查方法将IO设置为高低电平然后用万用表测一下引脚电压就可以知道这个IO口能不能正常控制了。
在这里插入图片描述
效果是这样的
在这里插入图片描述
接下来测试字符串函数
在这里插入图片描述
实际效果是这样的
在这里插入图片描述
至此,测试完毕,大家可以尽情的使用OLED模块来调试程序了。
关于带参数的字符串的使用方法参考oled.h文件里的PS说明。

  • 30
    点赞
  • 95
    收藏
    觉得还不错? 一键收藏
  • 12
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值