×
嵌入式 > 技术百科 > 详情

STM8 I2C的学习

发布时间:2020-06-03 发布时间:
|

STM8的I2C接口


1、I2C模式选择
接口有4种模式:从设备发送模式;从设备接收模式;主设备发送模式;主设备接收模式。
默认条件下,I2C模块工作于从模式。接口在产生起始条件后自动地从从模式切换到主模式;当仲裁失败或发送STOP信号时,则从模式切换到从模式。


2、通信过程
主模式时,I2C接口启动数据传输并产生时钟信号。串行数据传输总是以起始条件开始并以停止条件结束。起始条件和停止条件都是在主模式下由软件控制产生。


相关功能寄存器
1、I2C控制寄存器1(I2C_CR1)
2、I2C控制寄存器2(I2C_CR2)
3、I2C频率寄存器(I2C_FREQR)
允许的时钟范围在 1-24MHz
4、I2C自身地址寄存器LSB(I2C_OARL)
5、I2C自身地址寄存器MSB(I2C_OARH)
6、I2C数据寄存器(I2C_DR)
7、I2C状态寄存器1(I2C_SR1)
8、I2C状态寄存器2(I2C_SR2)
9、I2C状态寄存器3(I2C_SR3)
10、I2C_ITR I2C中断寄存器
11、I2C时钟控制寄存器低位部分(I2C_CCRL)
12、I2C时钟控制寄存器高位部分(I2C_CCRH)



对SI7020的初始化
void SHT20_gpio_init(void)
{
    GPIO_Init(I2C_SDA_PORT, I2C_SDA_PIN, GPIO_MODE_IN_PU_NO_IT);
    GPIO_Init(I2C_SCL_PORT, I2C_SCL_PIN, GPIO_MODE_IN_PU_NO_IT);
    SDA_OUTPUT();
    SCL_OUTPUT();
}


#define SDA_OUTPUT()    do{I2C_SDA_PORT->DDR |=I2C_SDA_PIN;}while(0)
#define SCL_OUTPUT()    do{I2C_SCL_PORT->DDR |=I2C_SCL_PIN;}while(0)

 

『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
起重变频调速系统中制动电阻功率的计算