I²C(Inter-Integrated Circuit)总线是一种两线式串行总线,用于连接微控制器及其外设,是由数据线SDA和时钟SCL构成的串行总线,可发送和接收数据。
IIC总线在传送数据过程中共有3种类型信号,分别是开始信号、结束信号和应答信号。
|
SCL |
SDA |
|
|
开始信号 |
高电平 |
由高电平向低电平跳变,开始传送数据 |
|
结束信号 |
高电平 |
由低电平向高电平跳变,结束传送数据 |
|
应答信号 |
接收数据的IC在接收到8bit数据后向发送数据的IC发出特定的低电平脉冲,表示已经收到数据;CPU向受控单元发出一个信号后,等待受控单元发出一个应答信号,CPU接收到应答信号后,根据实际情况作出是否继续传递信号的判断;若未收到应答信号,则判断为受控单元出现故障。 |
|
1.初始化IIC
1 //初始化IIC 2 void IIC_Init(void) 3 { 4 RCC->APB2ENR|=1<<4;//先使能外设IO PORTC时钟 5 GPIOC->CRH&=0XFFF00FFF;//PC11/12 推挽输出 6 GPIOC->CRH|=0X00033000; 7 GPIOC->ODR|=3<<11; //PC11,12 输出高 8 }