欢迎光临散文网 会员登陆 & 注册

STM32CUBEIDE(13)----IIC之配置OLED

2023-07-26 16:07 作者:记帖  | 我要投稿

@TOC

概述

本章配置STM32F103使用IIC进行驱动SSD1306的12864OLED。 最近在弄ST和GD的课程,需要GD样片的可以加群申请:615061293 。

样品申请

https://www.wjx.top/vm/ejaAT1c.aspx#

视频教学

https://www.bilibili.com/video/BV16G411u7cg/


csdn课程

课程更加详细。 https://download.csdn.net/course/detail/35611

生成例程

使用STM32CUBEMX生成例程,这里使用NUCLEO-F103RB开发板 

 查看原理图,PB8和PB9设置为开发板的IIC。

配置时钟树

配置时钟为64M。 

IIC配置

本次实验使用的IIC与显示屏通信,配置如下。 

OLED

查看文档可以知道地址为b0111100或者b0111101,当R/W位置写0的时候,才能进行写的操作,那么地址默认为0x78(b01111000)或者0x7A(b01111010)

参考程序

这里使用0.96OLED显示屏_STM32F103C8_IIC_V1.0来进行移植 

 

 查看工程可以知道主要是有3个文件来进行OLED的驱动,移入OLE.h .c 、oledfont.h 、 bmp.h 移入文件之后要注意导入C文件。 

删除没有用的头文件 删除sys.h文件 

删除delay.h文件 

可以查看stdint.h 

在oled.h中添加u8 u32定义 也可以直接修改

 先把oled.h添加主程序中。 

查看oled.h,可以看到IIC定义,同时也是模拟IIC,可以注释掉 

查看oled.c,可以看到是模拟iic,这些都可以注释不要,我们使用的是iIC,不是模拟。

HAL_I2C_Mem_Write()

IIC写固定的设备写入数据。 记得导入#include "i2c.h" 

将HAL_I2C_Mem_Write函数放入oled.c中。 例如将Write_IIC_Command函数修改为HAL_I2C_Mem_Write发送方式。 

向0x78设备写命令0x00的IIC_Command指令。



IIC写数据 向0x78设备写数据0x40的IIC_Data指令。


在oled.c中,OLED_Init初始化可以注释掉gpio初始化 

在oled.c中,OLED_Init初始化中有个延时800ms。 导入

#include "stm32f1xx_hal.h" 可以使用HAL_Delay(800);

取模

 在oledfont.h中放入字库 


在main.c中添加显示



字体大小只有2个 

 显示字符

图片

图片放在bmp.h中。


交流Q_qun:615061293。 或者关注『记帖』,持续更新文章和学习资料! 

显示图片

OLED.C



OLED.h


OLEDFONT.H





STM32CUBEIDE(13)----IIC之配置OLED的评论 (共 条)

分享到微博请遵守国家法律