STM32个人学习笔记第五集-IIC通信

本文介绍了IIC(Inter-Intergrated Circuit)总线的通信原理,包括其基本构成、信号类型以及如何通过软件模拟实现IIC接口。探讨了如何给从机寄存器赋值和从从机读取数据的具体步骤,并提到了访问16位地址的从机寄存器的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

因为最近有一个关于PAJ7620的手势传感器的小任务,这个传感器需要IIC通信,所以想先学习一下IIC再回头去补充学习通用定时器。

IIC简介

IIC(Inter-Intergrated Circuit)总线是一种由PHILIPS公司开发的两线式串行总线。
有SDA和SCL构成的串行总线。

IIC在传输信号时有三种信号

开始信号:SCL为高点平,SDA由高向低电平跳变,开始传送数据。
结束信号:SCL为高点平,SDA由低向高电平跳变,结束传送数据。
应答信号:接收数据的IC在接收到8bit数据后,向发送数据的IC发出特定的低电平脉冲,表示已收到数据。CPU向受控单元发出一个信号后,等待受控单元发出一个应答信号,CPU接收到应答信号后,根据实际情况作出是否继续传递信号的判断。若未收到应答信号,由判断为受控单元出现故障。
起始信号是必须的,结束信号和应答信号都可以不要。IIC总线的时序图如下:
在这里插入图片描述
这次学习用软件模拟IIC接口。

关于IIC的几个问题:
1,怎么给从机的寄存器赋值?
看了一下关于IIC的代码,是这样一个步骤,寄存器的地址是16位的,但是IIC每次只能发8bit数据,一个16bit的地址,要分两次发送,即:先发高八位,再发低八位数据。就可以访问从机的地址,然后再发送8位数据。用正点的例程24C02IIC通信举个例子。
在这里插入图片描述
2,怎么从从机中读取数据?
也是先向从机中写寄存器的地址,然后读取数据。恩,就这么简单。用正点的例程24C02IIC通信举个例子。

在这里插入图片描述

剩下的,就是查看相关从机的DATASHEET了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值