stm32|STM32Cubemx——IIC驱动0.96寸OLED


文章目录

  • 一、使用工具
  • 二、前置知识
    • 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.显示汉字示例
  • 五、 工程下载地址
【stm32|STM32Cubemx——IIC驱动0.96寸OLED】
一、使用工具 四针OLED
如图
stm32|STM32Cubemx——IIC驱动0.96寸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.新建工程配置基本 stm32|STM32Cubemx——IIC驱动0.96寸OLED
文章图片

stm32|STM32Cubemx——IIC驱动0.96寸OLED
文章图片

stm32|STM32Cubemx——IIC驱动0.96寸OLED
文章图片

2.时钟树配置 stm32|STM32Cubemx——IIC驱动0.96寸OLED
文章图片

3.开启IIC并配置 stm32|STM32Cubemx——IIC驱动0.96寸OLED
文章图片

并且配置为高速模式,将相应引脚与OLED连接。
4.生成工程 stm32|STM32Cubemx——IIC驱动0.96寸OLED
文章图片

stm32|STM32Cubemx——IIC驱动0.96寸OLED
文章图片

三、Keil代码移植 1.生成工程,并将本工程中APP文件夹复制进自己的工程 stm32|STM32Cubemx——IIC驱动0.96寸OLED
文章图片

2.打开Keil,添加分组APP,将文件APP的内容添加进分组 stm32|STM32Cubemx——IIC驱动0.96寸OLED
文章图片

3.添加头文件地址 stm32|STM32Cubemx——IIC驱动0.96寸OLED
文章图片

4.在oled.h内将OLED管脚定义修改为自己所用的管脚,并修改为自己的单片机型号 stm32|STM32Cubemx——IIC驱动0.96寸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 */

效果如图
stm32|STM32Cubemx——IIC驱动0.96寸OLED
文章图片

6.显示汉字示例 (1)打开汉字取模软件
stm32|STM32Cubemx——IIC驱动0.96寸OLED
文章图片

(2)配置如下
stm32|STM32Cubemx——IIC驱动0.96寸OLED
文章图片

(3)汉字取模
stm32|STM32Cubemx——IIC驱动0.96寸OLED
文章图片

(4)将生成数组存入Keil内
打开oledfont.h文件,将内容复制进入Hzk[][32]数组内,如下
stm32|STM32Cubemx——IIC驱动0.96寸OLED
文章图片

(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 */

若需显示其他汉字,需要从取模软件内得到数组存入程序才可。
效果如图
stm32|STM32Cubemx——IIC驱动0.96寸OLED
文章图片

五、 工程下载地址 链接:https://pan.baidu.com/s/150M1XtDEUoWVOzNvKhwrYQ
提取码:bst4

    推荐阅读