基于I2C的“0.96寸OLED”入门篇

系列文章目录



前言

本文主要介绍I2C协议下的OLED基本显示操作,例程代码来源于江协。


一、I2C时序

  • 构成:在物理层面上主要由数据总线SDA和时钟总线SCL组成

  • 传输距离:适用于短距离传输

  • 信号类型:同步信号,半双工(简单说就是只有一根线来进行数据实时传输,同一时间只能主机到从机或者从机到主机,除此之外还有异步传输,全双工传输,可百度了解)

  • 时钟总线(SCL):I2C本身是一种串行同步信号,故而要在通信时使用SCL传输同步脉冲信号

  • 数据总线(SDA):数据,地址和控制信号复用的数据线

  • 注意:作为两线串行协议,他的主从模式在同一时间只能有一个主控,其原因在于I2C本身需要时钟同步信号,而这个SCL信号只能由主机进行提供

  • 地址:7bit地址位,1bit读写位,1-127为从机地址范围,0为广播地址、

  • 数据:一次只能发送8bit数据,其格式是大端存储(可百度查询大端存储和小端存储)

  • 传输速率:标准模式100kbps左右,快速模式400kbps左右

二、I2C初始化

1.总线初始化

首先附上代码

#define OLED_W_SCL(x)	GPIO_WriteBit(GPIOB,GPIO_Pin_8,(BitAction)(x))
#define OLED_W_SDA(x)	GPIO_WriteBit(GPIOB,GPIO_Pin_9,(BitAction)(x))

void OLED_IIC_Init(void){
   
   
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);
	
	GPIO_InitTypeDef GPIO_InitStructure;
	GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_OD;
	GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
	GPIO_InitStructure.GPIO_Pin=GPIO_Pin_9;
	GPIO_Init(GPIOB,&GPIO_InitStructure);
	GPIO_InitStructure.GPIO_Pin=GPIO_Pin_8;
	GPIO_Init(GPIOB,&GPIO_InitStructure
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值