STM32实现软件I2C通信

      最后更新:2022-01-31 20:11:05 手机定位技术交流文章

      目录

      I2C协议

      1. 空闲状态

      2. 开始信号

      3. 停止信号

      4. 应答信号ACK

      5. 数据的有效性

      6. 数据传输

      I2C的实现

      IIC_Init

      II2_START​

      IIC_Stop​

      IIC_Wait_Ack​

      IIC_Ack

      IIC_NAck ​

      IIC_Send_Byte

      IIC_Read_Byte

      通过I2C操作24C02

      初始化

      写一个字节

      ​读一个字节

      写入读出多个地址

      I2C,两线式串行总线,可发送和接收数据

      SCL和SDA都必须上拉

      I2C协议

      1. 空闲状态

      SCL和SDA同时处于高电平

      2. 开始信号

      SCL为高电平期间,SDA由高电平转为低电平

      3. 停止信号

      SCL为高电平期间,SDA由低电平转为高电平

      4. 应答信号ACK

      发送器每发送8个字节,就在时钟脉冲9期间释放数据线SDA,由接收器反馈一个应答信号

      拖接收器成功接收该信号,则拉低SDA,表示ACK

      若没有成功接收该信号,则不拉低,SDA仍为高,表示NACK

      5. 数据的有效性

      SDA高电平表示1,低电平表示0,时钟线SCL高电平期间SDA应保持稳定

      6. 数据传输

      在SCL控制下传送数据

      I2C的实现

      定义SCL与SDA的引脚

      SDA需要能够转变IO的方向

      IIC_Init

      II2_START

      IIC_Stop

      IIC_Wait_Ack

      IIC_Ack

      IIC_NAck

      IIC_Send_Byte

      IIC_Read_Byte

      如果读到1,则最低位+1

      通过I2C操作24C02

      初始化

      写一个字节

      地址是2个字节u16,高8位是一个字节,即高字节,低8位是一个字节,即低字节

      写入的是一个字节,8位,u8

      读一个字节

      写入读出多个地址

      本文由 在线网速测试 整理编辑,转载请注明出处,原文链接:https://www.wangsu123.cn/news/17722.html

          热门文章

          文章分类