目录
一、前言
二、详细步骤
1.配置STM32CUBEMX
2.导入OLED库
3.程序设计
3.1 初始化OLED显示屏
3.2 显示字符串
3.3 显示汉字
三、汉字取模
四、总结
一、前言
OLED显示屏是一种十分常见的显示模块,通过用它作为采集到的传感器数据的展示模块。本文通过STM32CUBEMX配置相关接口,通过软件模拟IIC的方式,与OLED显示屏进行通信,相关程序已经测试可用。
二、详细步骤
1.配置STM32CUBEMX
首先,完成基础的STM32CUBEMX工程的配置,配置时钟树和工程路径。
随后,我们任意选择两个引脚,配置为输出模式,详细设置保持默认即可。
随后,设置别名分别为OLED_SCL,OLED_SDA,同时这也与OLED模块的引脚对应。
2.导入OLED库
解压并打开oled库文件,包含两个.h文件和一个.c文件。
导入库方法:Keil5导入库文件方法
偶尔我会选择一些偷懒的方法,比如放到根目录下。打开STM32CUBEMX生成的工程目录,打开Core文件夹。
将库中的三个文件复制到Core下,随后将.c文件放到Src中,再将.h文件放到Inc文件夹下。
回到Keil将.c文件添加进工程,这种方法的好处是不用再添加.h的路径了,但是这不规范。标准开发的话还是要分开比较好。
3.程序设计
在oled.h文件中,声明的函数如下(开发时要在main.c中导入头文件哈)
void OLED_ClearPoint(uint8_t x,uint8_t y);
void OLED_ColorTurn(uint8_t i);
void OLED_DisplayTurn(uint8_t i);
void I2C_Start(void);
void I2C_Stop(void);
void I2C_WaitAck(void);
void Send_Byte(uint8_t dat);
void OLED_WR_Byte(uint8_t dat,uint8_t mode);
void OLED_DisPlay_On(void);
void OLED_DisPlay_Off(void);
void OLED_Refresh(void);
void OLED_Clear(void);
void OLED_DrawPoint(uint8_t x,uint8_t y);
void OLED_DrawLine(uint8_t x1,uint8_t y1,uint8_t x2,uint8_t y2);
void OLED_DrawCircle(uint8_t x,uint8_t y,uint8_t r);
void OLED_ShowChar(uint8_t x,uint8_t y,uint8_t chr,uint8_t size1);
void OLED_ShowString(uint8_t x,uint8_t y,uint8_t *chr,uint8_t size1);
void OLED_ShowNum(uint8_t x,uint8_t y,uint32_t num,uint8_t len,uint8_t size1);
void OLED_ShowChinese(uint8_t x,uint8_t y,uint8_t num,uint8_t size1);
void OLED_ScrollDisplay(uint8_t num,uint8_t space);
void OLED_WR_BP(uint8_t x,uint8_t y);
void OLED_ShowPicture(uint8_t x0,uint8_t y0,uint8_t x1,uint8_t y1,uint8_t BMP[]);
void OLED_Init(void);
3.1 初始化OLED显示屏
使用前需要先初始化OLED显示屏。
OLED_Init();
OLED_DisPlay_On();
3.2 显示字符串
前两个参数代表x,y坐标(x取值0~127 y取值0~63),最后一个参数16是字号大小,需要显示数据可以用sprintf先把数据放到数组里再显示。
OLED_ShowString(0,0,(uint8_t *)"XiXiCaiNiao",16);
3.3 显示汉字
前两个参数代表x,y坐标(x取值0~127 y取值0~63),最后一个参数16是字号大小。第三个参数代表汉字下标,汉字模数据在oledfont.h中声明。
OLED_ShowChinese(0,0,0,16);
三、汉字取模
此处十分有必要介绍一下汉字取模的相关参数,我会把软件放这里供大家下载。并把相关参数信息简要的写在oledfont.h文件的汉字数组中。便于大家实时查阅。
首先打开PCtoLCD2002,随后按照下图设置(阴码-列行式-逆向(去掉前缀 后缀保留,))
此时生成的字模就是正确的,复制到数组内即可。
四、总结
以上方法就是OLED显示屏的全部使用方法,由于采用软件IIC模拟的方法,可移植性高。相关程序代码已经全部经过验证。
汉字取模软件:STM32OLED显示屏汉字取模软件合集资源-CSDN文库
OLED库:0.96寸OLED屏幕库资源-CSDN文库
本文源工程文件:0.96寸OLED屏幕开发源工程文件-西西菜鸟资源-CSDN文库