OLED 显示模块程序详解

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

OLED 显示模块

  最后代码已上传!!!!
  代码文章链接
   github 代码链接在该文章最后

如果还没有看过I2C 协议的,请移步先看下面这篇文章

I2C协议

好的,现在我们进入正题

1. 向 OLED 寄存器地址写入一个 byte 的数据
  • 开启 I2C
  • 发送 OLED 设备地址 + 读写控制 (w - 0, r - 1)
    • #define OLED_I2C_WR 0 采用宏定义方式
      #define OLED_I2C_RD 1
  • 一般 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
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

丿轩雪灬

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值