【STM32】 硬件IIC 驱动SSD1302(0.96 OLED模块) -- 2/4 SSD1306芯片手册 学习

博客围绕STM32使用IIC与SSD1306芯片通讯展开。介绍了SSD1306芯片,探讨其引脚配置以使用IIC通讯协议,还说明了除通讯接口外其他IO接口的处理。详细阐述了SSD1306的IIC连接,包括从地址位等,以及控制字节对数据和指令的区分。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

书接上回!

🔗文章1:【STM32】 硬件IIC 驱动SSD1306(0.96 OLED模块) – 1/4 库函数 学习

本章节内容是什么呢?

虽然我们已经学习了硬件IIC的驱动方式,那么我们要怎样使用IIC来和SSD1306进行通讯呢?

认识OLED SSD1306芯片

1.显示分辨率 128*64点阵
2.内置128X64的SRAM显示缓冲区
3.8位6800/8080机串并行接口、3线/4线SPI IIC接口
4.水平/垂直方向保持滚动功能
5.RAM写同步信号
6.可编程帧速率
7.行重映射、列重映射
8.片内振荡器
9.-40~85°C工作环境 	
10.其他

电路图

在这里插入图片描述
那么,SSD1306有那么多引脚,我们要怎样配置他使用IIC通讯协议呢?
这里的6800和8080的引脚模式有错误

从芯片手册可以知道,其工作原理和单片机的BOOT类似,是通过引脚的高低电平进行选择的,也就是

通讯方式BS0BS1BS2
IIC010
6800001
8080011
SP1100

那么除了通讯接口,其他的IO接口需要怎样处理呢?
在这里插入图片描述

读写控制

1.SSD1306的IIC 连接

I2C通信接口由从地址位SA0、I2C总线数据信号SDA (SDA输出/D2,用于输出;SDA输入/D1,用于输入)IIC的时钟线CLK或者D0用于时钟

数据和时钟信号都必须连接到上拉电阻。RES引脚用于IIC设备的初始化。

从地址位(SA0)

在通过i2c总线传输或接收任何信息之前,SSD1306必须识别从地址。设备将响应从地址后面的从地址位(“SA0”位)和读写选择位(“R/ w#”位),以R/W# =0 写字节格式

Address: 0x78
在这里插入图片描述

b7b6b5b4b3b2b1b0
011110SA0R/W#

依据上图,我们可以知道,在发送地址以后,IIC需要发送一个Control Byte来告诉IIC设备,接下来是什么数据,还是指令!
在这里插入图片描述
在传输从地址之后,无论是控制字节还是数据字节都可以通过SDA发送。
控制字节主要由Co位和D/ c#位加上六个“0”组成
a.如果将Co位设置为逻辑“0”,则以下信息的传输将只包含数据字节。

b. D/ c#位决定下一个数据字节作为命令还是数据。如果D/ c#位设置为逻辑“0”,则它将下面的数据字节定义为命令。如果D/ c#位设置为逻辑“1”,则它将以下数据字节定义为将存储在GDDRAM中的数据。

也就是说:0x0000 0000 接下来接收到的为命令字节
或者 如果0x0100 0000 那么接下来的数据为数据字节

//写指令
void WriteCmd(unsigned char I2C_Command)
{
		I2C_WriteByte(0x00,I2C_Command);		// 0000 0000
}

//写数据
void WriteData(unsigned char I2C_Data)
{
		I2C_WriteByte(0x40,I2C_Data);			// 0100 0000
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值