文章目录
- 一、使用工具
- 二、前置知识
-
- 1.12864OLED
- 2.IIC通信
- 三、STM32Cubemx配置
-
- 1.新建工程配置基本
- 2.时钟树配置
- 3.开启IIC并配置
- 4.生成工程
- 三、Keil代码移植
-
- 1.生成工程,并将本工程中APP文件夹复制进自己的工程
- 2.打开Keil,添加分组APP,将文件APP的内容添加进分组
- 3.添加头文件地址
- 4.在oled.h内将OLED管脚定义修改为自己所用的管脚,并修改为自己的单片机型号
- 5.主函数内初始化OLED
- 6.显示汉字示例
- 五、 工程下载地址
一、使用工具 四针OLED
如图

文章图片
STM32F407VE核心板
ST-Link
STM32Cubemx 版本 6.0.1
Keil 版本 5.31
二、前置知识 1.12864OLED 0.96 寸 OLED 有黄蓝,白,蓝三种颜色可选;其中黄蓝是屏上 1/4 部分为黄光,下 3/4 为蓝;而且是固定区域显示固定颜色,颜色和显示区域均不能修改;白光则为纯白,也就是黑底白字;蓝色则为纯蓝,也就是黑底蓝字。四针OLED仅支持IIC通信,七针OLED可支持SPI通信和IIC通信。
2.IIC通信 IIC:两线式串行总线,它是由数据线SDA和时钟线SCL构成的串行总线,可发送和接收数据。
在CPU与被控IC之间、IC与IC之间进行双向传送,高速IIC总线一般可达400kbs以上。
IIC通信仅需要两条线:
时钟线SCL:在通信过程起到控制作用。
数据线SDA:用来一位一位的传送数据。
IIC分为软件IIC和硬件IIC
软件IIC:软件IIC通信指的是用单片机的两个I/O端口模拟出来的IIC,用软件控制管脚状态以模拟I2C通信波形,软件模拟寄存器的工作方式。
硬件IIC:一块硬件电路,硬件I2C对应芯片上的I2C外设,有相应I2C驱动电路,其所使用的I2C管脚也是专用的,硬件(固件)I2C是直接调用内部寄存器。
IIC是半双工通信方式,硬件IIC效率要远高于软件IIC。我们本教程使用硬件IIC通信。
三、STM32Cubemx配置 1.新建工程配置基本

文章图片

文章图片

文章图片
2.时钟树配置

文章图片
3.开启IIC并配置

文章图片
并且配置为高速模式,将相应引脚与OLED连接。
4.生成工程

文章图片

文章图片
三、Keil代码移植 1.生成工程,并将本工程中APP文件夹复制进自己的工程

文章图片
2.打开Keil,添加分组APP,将文件APP的内容添加进分组

文章图片
3.添加头文件地址

文章图片
4.在oled.h内将OLED管脚定义修改为自己所用的管脚,并修改为自己的单片机型号

文章图片
比如我使用的是STM32F407VE,那么我就修改为stm32f4xx_hal.h,并且我开启的IIC管脚是PB6和PB7那么我就修改为这两个管脚。
5.主函数内初始化OLED (1)首先引入库
/* USER CODE BEGIN Includes */
#include "oled.h"
/* USER CODE END Includes */
(2)初始化
/* USER CODE BEGIN 2 */
OLED_Init();
OLED_Clear();
/* USER CODE END 2 */
(3)显示一个数字试试
/* USER CODE BEGIN 3 */
OLED_ShowNum(0,0,20,2,16);
}
/* USER CODE END 3 */
效果如图

文章图片
6.显示汉字示例 (1)打开汉字取模软件

文章图片
(2)配置如下

文章图片
(3)汉字取模

文章图片
(4)将生成数组存入Keil内
打开oledfont.h文件,将内容复制进入Hzk[][32]数组内,如下

文章图片
(5)主函数打印出汉字
/* USER CODE BEGIN 3 */
OLED_ShowNum(0,0,20,2,16);
OLED_ShowCHinese(0,2,0);
//打印平
OLED_ShowCHinese(16,2,1);
//打印陆
OLED_ShowCHinese(32,2,2);
//打印成
OLED_ShowCHinese(48,2,3);
//打印江
OLED_ShowCHinese(64,2,4);
//打印,
//此OLED为128*64,x取值为0-128,y取值为0,1,2,3,4,5,6,7一共分八页,一个汉字需要16*16的位置,
//即x需要加16,y需要加2才能不重叠,一个尺寸为16的数字占的位置为8*16}
/* USER CODE END 3 */
若需显示其他汉字,需要从取模软件内得到数组存入程序才可。
效果如图

文章图片
五、 工程下载地址 链接:https://pan.baidu.com/s/150M1XtDEUoWVOzNvKhwrYQ
提取码:bst4
推荐阅读
- 嵌入式|STM32 0.96寸4针IOLED显示器驱动IIC(HAL库)
- stm32|基于I2C/SPI总线的温湿度采集与OLED显示
- 嵌入式|STM32 0.96寸OLED IIC通信
- oled模块学习|OLED_I2C_SH1106屏幕教程
- STM32|STM32控制0.96寸OLED(4针/4Pin)汉字以及数字,英文显示
- stm32|基于STM32的智能家具控制系统(ESP-01S(8266)、手机app远程控制、远程显示温度)
- 智能手环|基于STM32单片机的蓝牙智能手环系统
- Arduino|Part5 -- 如何使用Arduino的IIC总线(Wire)
- 我要进大厂|0 基础 Java 自学之路(2021年最新版)