文章目录
1. IIC-OLED模块简介
IIC-OLED模块是一种高品质、高性能的显示屏,采用了有机发光二极管(OLED)技术,通过四个针脚控制电源和信号来实现对显示内容的控制。该模块具有以下特点:
- 高分辨率和色彩深度:该OLED模块具有高达128x64像素的分辨率和16位色彩深度,可以呈现出细腻、清晰的画面效果。
- 显示角度广泛:该模块具有178度的广角度,可以在各种角度下提供清晰的图像显示,同时也适用于不同的应用场景。
- 低功耗:OLED技术具有自发光特性,因此相比其他类型的显示屏,该模块具有更低的功耗,延长了电池寿命。
- 高可靠性:该模块采用了高品质的材料和工艺,严格把控生产流程,保证了产品的稳定性和可靠性,适用于各种环境下的使用。
- 简单易用:该模块通过四个针脚进行控制,接口简单,易于集成到各种设备中。
总之,IIC-OLED模块是一种高品质、高性能的显示屏,具有广泛的应用前景。
OLED正反面实物图:
2. 移植源码到工程
提前创建一个文件夹,用来存放工程(文件夹路径建议全英文)
打开STM32CubeMX,选择芯片(这里选择STM32F103ZET6),配置Debug,ST-LINK选择Serial Wire。
使能HSE和LSE,配置时钟频率为72M。
配置硬件IIC,这里使能IIC1,对应STM32F103ZET6引脚为PB6和PB7。
创建工程名,配置编译环境。
这里用keil5编译,因此选择MDK-ARM-V5。
点击配置代码生成器并生成代码。
点击GENERATE CODE即可生成代码。
打开工程存放的位置。
移植oled相关的.h和.c文件到工程中。
相关文件提取方式(内含取字模软件PCtoLCD2002完美版):
关注微信公众号:码上芯路人
私信:模块驱动
说明:oled.h中是一些宏定义和oled相关的函数声明,oled.c中是oled相关函数的定义,oledfont.h是一些字库,可以使用取字模软件生成字库代码添加到oledfont.h中使用。
将oled.h和oledfont.h文件复制到工程文件目录Oled_test\Core\Inc中
将oled.c文件复制到工程文件目录Oled_test\Core\Src中
双击打开Oled_test\MDK-ARM目录中UVPROJX文件,按下图提示操作。
编译后oled.h和oledfont.h将被包含在oled.c目录下。
下面介绍取字模软件的使用和驱动函数。
3. 取字模软件的使用
3.1 汉字取模
-
打开取模软件PCtoLCD2002,然后模式选择字符模式,然后点击选项。
-
汉字取模设置如下,点击确定。
①:阴码表示点亮的像素点对应的二进制值为0,而未点亮的像素点对应的二进制值为1;而阳码则恰好相反,即点亮的像素点对应的二进制值为1,未点亮的像素点对应的二进制值为0。具体参考OLED屏幕的数据手册。
②:不同的取模方式对应不同的屏幕尺寸,如果取模方式与屏幕尺寸能很好对应,那么就会减小读写次数,提高转换效率,这里使用的是128×64的屏幕,因此选择适用于列数较多的取模方式->列行式。
③:在128×64OLED屏中,为了能使显示的汉字辨识度较高,采用16×16像素大小(8×8基本认不出是什么汉字),那么就需要256个二进制数来点亮这个16×16区域中对应汉字的像素点(每个二进制数点亮一个像素点),由于生成的字模数据,每个数据占用8位,一个汉字有256÷8=32个数据,这里点阵为16即生成字模一行16个数据,共两行。索引文件就是保存当前生成字模的数据后的文件,文件内容是汉字和对应的序号,文件名默认为_index.txt。
④:取模走向参考OLED屏幕的数据手册。
⑤:16进制数能更好的表示位数。
⑥:选择输出索引文件。
⑦:液晶色彩有白-黑,蓝-黑等。像素大小是指在液晶仿真界面上,每个字符的宽度为8个像素点
⑧:C51生成适用于C语言的数据,A51生成适用于汇编语言的数据。
⑨:这里设置一些注释等格式,复制数据到汉字数组中后方便操作。 -
设置好后,在文字框输入“比心”生成字模并复制到汉字数组Hzk中。
//部分汉字
const unsigned char Hzk[][32] =
{
{
0x00,0x00,0xFE,0x40,0x40,0x40,0x40,0x00,0xFF,0x80,0x40,0x20,0x10,0x08,0x00,0x00},
{
0x00,0x00,0x7F,0x20,0x20,0x10,0x10,0x00,0x3F,0x40,0x40,0x40,0x40,0x40,0x78,0x00},/*"比",0*/
/* (16 X 16 , 宋体 )*/
{
0x00,0x00,0x80,0x00,0x00,0xE0,0x02,0x04,0x18,0x00,0x00,0x00,0x40,0x80,0x00,0x00},
{
0x10,0x0C,0x03,0x00,0x00,0x3F,0x40,0x40,0x40,0x40,0x40,0x78,0x00,0x01,0x0E,0x00},/*"心",1*/
/* (16 X 16 , 宋体 )*/
};
3.2 图片取模
-
打开取模软件,先选择图片模式,然后点击选项
-
图片设置如下,点击确定。
-
使用系统自带的绘图软件绘制一张128×64图片(点击文件->图像属性->宽高分别设置为128和64),点击另存为->BMP格式。
-
在取模软件中打开绘制的BMP文件并点击生成字模。
-
复制生成的字模到图片数组BMP中。
//一张图片
uint8_t BMP[][1024] =
{
{
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x80,0x80,0xC0,0xC0,0xC0,0xC0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xC0,0xC0,0xC0,
0xC0,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x80,0xC0,0xC0,0xC0,
0xC0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xC0,0xC0,0xC0,0xC0,0x80,0x80,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xE0,0xF0,0xF8,0xFC,0xFE