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

GD32F303固件库开发(14)----IIC之配置OLED

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

概述

本章配置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。 或者关注『记帖』,持续更新文章和学习资料! 


GD32F303固件库开发(14)----IIC之配置OLED的评论 (共 条)

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