完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
1个回答
|
|
OLED模块体积小巧,使用方便,是一个很优秀的显示器。在我们调试代码中是一个很方便的使用的模块,在我们每次创建一个新的工程,都需要从商家给的oled模块驱动代码添加进我们的工程,商家提供的代码我们使用起来并不方便,所以作者从方便调用的角度出发,为了应对对于不同的使用环境,尽可能的对源码做较少修改就能驱动并使用oled模块,所以自写了oled模块的移植代码,方便大家使用。
文件获取 二话不说,先提供代码文件。 把文件解压后,可以看见这么一个文件夹 文件夹中总共有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大小的图片单独写了一个函数。 第七个函数 字符串显示函数,这个函数最常使用,所以我们重点介绍。 前两个参数是设置显示的起点,第三个参数是一个字符串指针,我们需要把要显示的字符串的地址写进去即可,第四个参数是设置字符串的字体大小,支持86和1616字体,我们86字体填8,16*16字体填16。 重点来了,这个函数是支持显示汉字的,只要要显示的汉字在oled_font.c文件里有登记,就可以显示出来。 我们打开oled_font.c文件,文件里最下面可以看见已经登记了的汉字。 汉字登记方法 打开软件,先把模式改为字符模式,然后我们再配置选项 配置说在oled_font.c文件的最上面写有 配置完成后,生成字模的左边框里写入汉字,然后点击生成字模即可。 将生成的字模中除了第一行外的代码复制到登记汉字的数组里即可 这里我们可以调整一下格式,这样更加美观。至此汉字已经登记完毕了。 代码测试 接下来我们实际测试一下代码,使用测试图片1来测试OLED模块能不能正常工作。我们把这段代码下载到单片机里,这里我们使用IO口给模块供电,总共使用了PB3-PB9七个引脚,大家使用时请确保IO口是可以正常控制的,如果某些模块用到的IO口不能正常控制的话,模块可能会无法工作,检查方法将IO设置为高低电平然后用万用表测一下引脚电压就可以知道这个IO口能不能正常控制了。 接下来测试字符串函数 至此,测试完毕,大家可以尽情的使用OLED模块来调试程序了。 关于带参数的字符串的使用方法参考oled.h文件里的PS说明。 |
|
|
|
只有小组成员才能发言,加入小组>>
3311 浏览 9 评论
2994 浏览 16 评论
3493 浏览 1 评论
9058 浏览 16 评论
4087 浏览 18 评论
1176浏览 3评论
604浏览 2评论
const uint16_t Tab[10]={0}; const uint16_t *p; p = Tab;//报错是怎么回事?
598浏览 2评论
用NUC131单片机UART3作为打印口,但printf没有输出东西是什么原因?
2334浏览 2评论
NUC980DK61YC启动随机性出现Err-DDR是为什么?
1895浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-22 21:23 , Processed in 1.143215 second(s), Total 79, Slave 59 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号