STM8 I2C的学习

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)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值