GD32F303固件库开发(14)----IIC之配置OLED
概述
本章配置GD32F303使用IIC进行驱动SSD1306的12864OLED。 查阅手册可以得知,PB10、PB11为I2C的接口。 需要GD样片的可以加群申请:615061293 。


视频教学
https://www.bilibili.com/video/BV1od4y1u7t7/
csdn课程
课程更加详细。 https://download.csdn.net/course/detail/37144
样品申请
https://www.wjx.top/vm/wFGhGPF.aspx#
参考文档
GD官方文档GD32F30x_Firmware_Library_V2.1.4下面IIC的Master_transmitter&slave_receiver
时钟使能
初始化IO
IIC初始化
配置IIC接口
修改IIC发送代码
将Master_transmitter&slave_receiver的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,不是模拟。

将IIC写放入oled.c中。 记得导入#include "gd32f30x_i2c.h"头文件

记得在oled.h中申明 要使用uint8和uint32,导入头文件#include "stdint.h"

IIC写一个字节可以修改为如下所示。

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

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

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

在oled.c中,OLED_Init初始化中有个延时800ms。 导入
#include "systick.h" 可以使用delay_1ms(800);

取模


在oledfont.h中放入字库

在main.c中添加显示
字体大小只有2个

显示字符

图片

图片放在bmp.h中。
显示图片

OLED.C
OLED.h
OLEDFONT.H
以上的代码会在Q_qun里分享。QQ_qun:615061293。 或者关注『记帖』,持续更新文章和学习资料!