RT-Thread Studio学习笔记(1) 移植u8g2 使用硬件I2C

使用RT-Thread Studio 将u8g2库移植到STM32F103,使用0.96吋OLED 单色屏。

1.新建工程

使用RT-Thread Studio新建工程,
RT-Thread Studio学习笔记(1) 移植u8g2 使用硬件I2C

2.工程配置

添加u8g2软件包
RT-Thread Studio学习笔记(1) 移植u8g2 使用硬件I2C
添加后Ctrl+S保存,然后配置u8g2软件包,
RT-Thread Studio学习笔记(1) 移植u8g2 使用硬件I2C
勾选Use hardware i2c,在i2c device name修改需要使用的i2c,这里使用的是i2c1。
然后在u8g2 examples里选择ssd1306 i2c hardware
version里选择c-latest,然后保存。

3.代码配置

打开drivers下的include里的board.h
RT-Thread Studio学习笔记(1) 移植u8g2 使用硬件I2C
添加#define BSP_USING_I2C1,并修改使用到的IO口和引脚,这里使用的是STM32F103的I2C1,为PB6和PB7。
RT-Thread Studio学习笔记(1) 移植u8g2 使用硬件I2C
packge里的u8g2port.h中注释掉#include <drv_spi.h>
RT-Thread Studio学习笔记(1) 移植u8g2 使用硬件I2C
rtconfig.h修改使用到的I2C设备,
RT-Thread Studio学习笔记(1) 移植u8g2 使用硬件I2C
然后编译,编译可能报错,提示内存不够,这里我们修改link.lds,将ROM改为128,

RT-Thread Studio学习笔记(1) 移植u8g2 使用硬件I2C
RT-Thread Studio学习笔记(1) 移植u8g2 使用硬件I2C
再次编译,没有问题,
RT-Thread Studio学习笔记(1) 移植u8g2 使用硬件I2C

下载

下载到开发板后,打开终端,输入help
RT-Thread Studio学习笔记(1) 移植u8g2 使用硬件I2C
可以看到有ssd1306_12864_hw_12c_example的命令,在终端执行,
RT-Thread Studio学习笔记(1) 移植u8g2 使用硬件I2C
执行后在OLED 就显示了,
RT-Thread Studio学习笔记(1) 移植u8g2 使用硬件I2C