1. i2c简介 i2c( inter-integrated circuit)总线是由 philips 公司开发的两线式串行总线,用于连接微控制器及其外围设备。是微电子通信控制领域广泛采用的一种总线标准。具有接口线少,控制方式简单,器件封装形式小,通信速率较高等优点。
i2c特性:
(1)只要求两条总线线路一条串行数据线sda,一条串行时钟线scl;
(2)每个连接到总线的器件都可以通过唯一的地址和一直存在的简单的主机/从机关系软件设定地址,主机可以作为主机发送器或主机接收器;
(3)它是一个真正的多主机总线,如果两个或更多主机同时初始化数据传输可以通过冲突检测和仲裁防止数据被破坏;
(4)串行的 8 位双向数据传输位速率在标准模式下可达100kbit/s,快速模式下可达400kbit/s,高速模式下可达 3.4mbit/s;
(5)片上的滤波器可以滤去总线数据线上的毛刺波保证数据完整;
(6)连接到相同总线的ic数量只受到总线的最大电容400pf;
iic是属串行通讯总线,同步传输、半双工。
2. i2c总线协议 iic协议格式:起始信号、停止信号、应答信号、非应答信号、发送数据、接收数据。
空闲状态:scl和sda均保持高电平;
2.1 起始信号 时钟为高电平时,数据由高电平变为低电平。
sda_out=1;scl=1;delay_us(2);sda_out=0;//方便下一次数据收发delay_us(2);scl=0; 2.2 停止信号 时钟线为高电平时,数据线由低变高。
sda_out=0;scl=0;delay_us(2);scl=1;delay_us(2);sda_out=1; 数据传输时序:
2.3 获取应答 时钟线为高时读取数据。应答信号本身就是一位数据。
u8 i=0;scl=0;//告诉从机,主机需要读取数据delay_us(2);scl=1;//开始读取数据while(sda_in){ i++; delay_us(1); if(i>=20)return 1;//非应答}delay_us(2);scl=0;//方便下一次数据收发return 0;//获取应答信号 2.4 发送应答(非应答)信号 时钟线为低电平时发送数据。应答信号本身就是一位数据。
scl=0;sda_out=ack&0x01;//ack为应答参数,0为应答,1为非应答delay_us(2);scl=1;//数据发送完成//方便下一次数据收发delay_us(2);scl=0; 2.5 发送一个字节数据for(i=0;i<8;i++){ scl=0; if(data&0x80)sda_out=1; else sda_out=0; delay_us(2);scl=1;//数据发送完成data<<=1;delay_us(2);}scl=0;//方便下一次数据收发 2.6 接收一个字节数据u8 data=0; for(i=0;i<8;i++){scl=0;//告诉从机,主机需要读取数据delay_us(2);scl=1;//主机开始读取数据data
sr1&1sr1&1cr1|=1sr1&1sr1&1cr1|=1 在stm32勘误手册中有说明:
6.6 示例效果
VS-10-C-1-6倾角传感器的应用场景
LTC6801-独立型多节电池的电池组故障监视器
如何设计一个简单的实用的晶振测试电路
能效管理平台在智慧水务建设中的应用
一种将复杂数学表达式表示为一种语言的新方法
STM32CubeMx之硬件IIC驱动EEPROM详解
2019新型的微信小说漫画分销系统开发微信小说源码
Amnon Shashua教授荣膺2020年人工智能领域的Dan David奖
中国电信在资本市场进行全面布局,已确立资本投资体系
如何选择DDR的拓扑结构?怎样去改善信号质量呢?
热缩管的材料有哪些
恩智浦将HDMI 1.4 应用于移动电话
名门锁业室内静音指纹锁EZ-S023083简介
沃尔沃推出一款全新的电动概念汽车,一辆无人驾驶的运货工具
健身房智能镜子将开启全新的智能健身时代
节能灯功率管失效原理研究
!!卖 HP4262A HP4278A HP4276A H
工业物联网网关助力打造绿色低碳的智能制造工厂
基于MES数采网关的空调生产监控及质量监管系统
OPPOR15和vivoX21哪个最值得买