OLED 显示模块
最后代码已上传!!!!
代码文章链接
github 代码链接在该文章最后
如果还没有看过I2C 协议的,请移步先看下面这篇文章
好的,现在我们进入正题
1. 向 OLED 寄存器地址写入一个 byte 的数据
- 开启 I2C
- 发送 OLED 设备地址 + 读写控制 (w - 0, r - 1)
- #define OLED_I2C_WR 0 采用宏定义方式
#define OLED_I2C_RD 1
- #define OLED_I2C_WR 0 采用宏定义方式
- 一般 OLED 地址为 0x78,不行就尝试下 0x7A
- 传入参数 addr,为寄存器参数,根据 OLED 手册,0x00 - 写入命令寄存器,0x40 - 写入数据寄存器
- 每一次发送数据,I2C 都需要作出正确的应答,0 为正确应答,查看该函数具体实现请移步到I2C协议
- 如果 OLED 设备未正确应答,使用 goto 无条件转移语句,将 I2C 协议停止掉。谨慎使用 goto 语句
void I2C_WriteByte(uint8_t addr,uint8_t data){
i2c_Start(); //开启 协议
//0x78 转化为 2进制 0111 1110 再或上一个 0 | 1 的值,表示地址最后一位为读写控制指令
i2c_SendByte(OLED_ADDRESS|OLED_I2C_WR); //发送地址 和 读写控制指令
if (i2c_WaitAck() != 0)
{
goto cmd_fail;
}
i2c_SendByte(addr); //发送对应寄存器,判断为0x00发送命令,还是0x40发送数据
if (i2c_WaitAck() != 0)
{
goto cmd_fail;
}
i2c_SendByte(data); //对应寄存器为 0x00,该data为命令,对应寄存器为0x4

本文详细介绍了如何操作OLED显示模块,包括通过I2C协议向寄存器写入数据,初始化OLED屏幕,设置光标起点,全屏填充,以及显示英文和中文字符的方法。同时提供了关键函数的代码实现,如I2C_WriteByte(),OLED_Init()和OLED_ShowStr()。此外,文章强调了初始化过程中的注意事项和常用命令的用途。

3298

被折叠的 条评论
为什么被折叠?



