IIC通信

软件IIC

SCL 、SDA 设置为通用开漏输出

第一步:配置GPIO 将SCL 、SDA 设置为开漏输出 并将二者置为高电平

第二步;编写 写SCL、SDA函数 读SDA函数 0给应答

第三步:

编写 start函数(兼容重复start条件)需要先将SDA置1,再将SCL置1  拉低SDA 拉低SCL  

编写 stop条件

发送一个字节                  先写高位  再依次写低位   

  发送数据   我们将数据的某一位放在SDA  先将SCL拉高  然后再将SCL拉低  连发8次即可达到发送效果

接收一个字节                 接收一个字节之前  需要先将SDA置1   防止从机干扰 

发送应答                       发送一个字节的简化版

接收应答                       接收一个字节的简化版

第四步:

指定地址读 

  开始 发送ADDRESS位 接收应答 发送地址位 接收应答     



  发送数据 接收应答  停止

指定地址写

  开始 发送ADDRESS位 接收应答 发送地址位 接收应答     

  重复开始  发送ADDRESS并将最低位置1  接收应答 读取数据 发送应答(还想读数据的话,则发送1,不想读了的话,则发送0;默认为1) 结束

第五步:

读寄存器

写寄存器

  需要先解除睡眠模式

硬件IIC

第一步:IIC外设配置——初始化

开启时钟 引脚设置位复用开漏模式 结构体配置 使能IIC

RCC IIC和GPIO  

第二步:控制外设电路 实现指定地址写的程序

第三步; 控制外设电路 实现指定地址读的程序

剩余步骤与上文一致

内容参考 江协 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值