系列文章目录
文章目录
前言
本文主要介绍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


2300

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



