STM8 I2C的学习
来源:互联网 发布:手机淘宝怎样实人认证 编辑:程序博客网 时间:2024/05/16 23:42
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、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)
0 0
- STM8 I2C的学习
- stm8的I2C库的使用
- stm8中断的学习
- STM8 的汇编学习
- STM8 SPI的学习
- STM8 AD的学习
- STM8 I2C从机
- stm8 中i2c(iic)引脚的输出电平问题
- 学习STM8的好文章
- 学习STM8的好文章 .
- stm8的中断学习1
- STM8的I2C在写地址的时候进入到assert_failed
- I2C总线浅谈之(四)--STM8的IIC驱动文件示例
- I2C总线的学习
- STM8 I/O口模拟I2C
- STM8/STM32硬件I2C读取APDS9930程序代码
- STM8 I/O口模拟I2C
- STM8学习笔记1
- uva 10795
- Linux下 java+tocmat环境搭建
- 图像处理opencv2-灰度直方图以及灰度直方图均衡化
- hdu2121+不定根最小树形图
- kafka搭建
- STM8 I2C的学习
- Spring.Net + NHibernate 入门例子
- Combination Sum
- HTML5中div、article、section的区别及使用介绍
- La 3971
- 字典的快速赋值 setValuesForKeysWithDictionary
- ios学习--UISegmentedControl详解
- 安卓WebView的那些坑
- 第十二周项目1-实现复数类中的运算符重载(3)