STM32-IIC

1.IIC通信

I2C(Inter IC Bus)是由Philips公司开发的一种通用数据总线

两根通信线:SCL(Serial Clock)、SDA(Serial Data)

同步,半双工

带数据应答

支持总线挂载多设备(一主多从、多主多从)

2.硬件电路

为IIC连接上拉电阻:如果不接上拉电阻,当主机输出1,从机输出0时,容易导致电路短路。所以规定主机从机只能输出0也就是只能选择开漏输出,接入上拉电阻之后当你想要输出时便输出低电平,当想要获得高电平则不输出,上拉电阻会自动使电路处于高电平。

3.IIC时序基本单元

 

 4.IIC时序,指定地址写

解析:在SCL高电平时,SDA从高电平到低电平,起始条件。SCL高电平读取数据,主机发送指定地址1101000,前七位是从机地址,第八位为读写位,0表示主机要写入,1表示主机要读取。然后SCL高电平期间读取SDA数据为0,则表示主机接收到应答,发送成功。随后主机再次发送数据,0x19表示从机中寄存器的地址。然后主机接收应答。最后再次发送数据,主机接收应答。最后在SCL高电平期间,SDA从低电平到高电平,终止条件。

5.IIC时序,当前地址读

起始位,主机发送数据前七位1101000,第八位1,表示主机要进行读操作。接收应答。主机读取00001111。主机发送接收应答。终止位。此主机接收的数据来自当前指针下的数据。

6.IIC时序,指定地址读

 首先主机发送0XD0的从机地址,再发送一个0X19的寄存器地址,此时的当前地址指针指向了0X19。然后再发送一个起始条件,再发送1101000的从机地址,1为读标志位,表示主机要读取数据。此时读取的0XAA数据就是从机地址的0x19寄存器的数据了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值