STM32Cubemx——IIC驱动0.96寸OLED

一、使用工具

四针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

  • 28
    点赞
  • 146
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 20
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 20
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

平陆成江,

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值