2022/10/5——基于stm32mp157a的IIC实验

IIC总线是PHLIPS公司在八十年代初推出的一种串行的半双工同步总线,主要用于连接整体电路。

IIC总线为两线制,只有两根双向信号线。一根是数据线SDA,另一根是时钟线SCL。

 IIC的四种时序:

①、起始信号——在SCL为高电平期间,SDA(数据线)从高电平到低电平的变化(下降沿)

②、停止信号——在SCL为高电平期间,SDA(数据线)从低电平到高电平的变化(上升沿)

③、数据传输——时钟信号在高电平期间,数据线上的数据必须保持稳定;时钟信号在低电平期间,数据线上的数据允许发生变化

④、应答信号和非应答信号——发送器在发送完8位的数据位之后,接收器必须在第9个时钟周期,返回一个应答信号(0),或者非应答信号(1)

四种IIC协议

 ①、主机给从机发送一个字节

 ②、主机给从机发送多个连续字节

③、 从机给主机发送一个字节

④、 从机给主机发送多个连续字节

 本次实验目的为:通过GPIO模拟IIC协议并读取温湿度芯片IIC协议经过公式转换后将结果打印到串口工具上。

温湿度转换公式:

 

 代码实现

一、si7006.h——头文件的包络和功能函数的声明

#ifndef __SI7006_H__
#define __SI7006_H__

#include "iic.h"
#define        SI7006_SLAVE      0x40

void si7006_init(void);

short si7006_read_data(unsigned char slave_addr, unsigned char reg_addr);

#endif //__SI7006_H__

二、iic.h——头文件的包络和功能函数的声明以及基本功能的实现(例如:数据线、时钟线上的电平的高低变化和数据的读写)


                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

命如星火

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值