当前位置:主页 > 查看内容

STM32-I2C总线驱动程序分析

发布时间:2021-09-26 00:00| 位朋友查看

简介:文章目录 I2C硬件电路原理图 I2C 简介 添加相应的文件并添加进工程文件 I2C驱动程序结构 I2C驱动程序分析 LM75A温度传感器电路原理图 LM75A温度传感器驱动程序分析 杨桃32学习笔记本文图片文字皆为转述 I2C硬件电路原理图 I2C要点 I2C总线是板级总线连接线一……


杨桃32学习笔记,本文图片文字皆为转述

I2C硬件电路原理图

在这里插入图片描述
I2C要点

I2C总线是板级总线,连接线一般不超2米。
电路连接:两线总线连接,1~10K上拉电阻,复用开漏模式。
器件地址:每个器件都有唯一地址(7位16进制数),最多127个器件地址,新版I2C规范中最大器件地址数量可达1023个。
所有设备与单片机需要共地。

在这里插入图片描述

杨桃电子开发版中,将oled屏幕的从设备地址定为0x78,0x9e是温度传感器的设备地址。

在这里插入图片描述
在这里插入图片描述

I2C 简介

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

添加相应的文件并添加进工程文件

在这里插入图片描述
在这里插入图片描述
在工程文件夹LIB下添加stm32f10x_i2c.c
在这里插入图片描述
在工程文件夹Basic下添加i2c.c
在这里插入图片描述
在工程文件夹Hardware文件夹下添加lm75a.c
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

I2C驱动程序结构

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

接下来编写的i2c器件这里指的是温度传感器,也都是调用以上函数来完成。如下图

在这里插入图片描述

I2C驱动程序分析

i2c.h
在这里插入图片描述

#ifndef __I2C_H
#define __I2C_H	 
#include "sys.h"

#define I2CPORT		GPIOB	//定义IO接口
#define I2C_SCL		GPIO_Pin_6	//定义IO接口
#define I2C_SDA		GPIO_Pin_7	//定义IO接口

#define HostAddress	0xc0	//总线主机的器件地址
#define BusSpeed	200000	//总线速度(不高于400000)


void I2C_Configuration(void);
void I2C_SAND_BUFFER(u8 SlaveAddr, u8 WriteAddr, u8* pBuffer, u16 NumByteToWrite);
void I2C_SAND_BYTE(u8 SlaveAddr,u8 writeAddr,u8 pBuffer);
void I2C_READ_BUFFER(u8 SlaveAddr,u8 readAddr,u8* pBuffer,u16 NumByteToRead);
u8 I2C_READ_BYTE(u8 SlaveAddr,u8 readAddr);
		 				    
#endif

i2c.c
初始化
在这里插入图片描述
发送一个字节数据

发送一个字节数据流程:
发送开始信号
等待完成
发送从器件地址及状态(写入)
等待完成	
发送从器件内部寄存器地址
等待完成	
发送要写入的内容
等待完成	
发送结束信号

在这里插入图片描述
在这里插入图片描述
读取一个字节数据

读取一个字节数据流程:
判断总线是否繁忙
发送起始信号
等待操作完成
发送器件地址
等待操作完成
开启i2c功能
发送器件子地址
主机允许从器件产生开始信号 向主机发送数据 也就是主机开启接收
等待完成
给出器件地址
等待接收数据 收到数据则跳出 没有收到一直等待
最后有一个数据时关闭应答位
最后一个数据时使能停止位
接收数据存放到变量a中

在这里插入图片描述
发送和读取多字节数据
在这里插入图片描述
在这里插入图片描述

LM75A温度传感器电路原理图

在这里插入图片描述
在这里插入图片描述

LM75A温度传感器驱动程序分析

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

根据上表可知,掉电模式相关位。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

例如D15 D11 D8为0 则意味着-9度

重新返回程序对应理解
在这里插入图片描述
在这里插入图片描述

;原文链接:https://blog.csdn.net/weixin_44681745/article/details/116009963
本站部分内容转载于网络,版权归原作者所有,转载之目的在于传播更多优秀技术内容,如有侵权请联系QQ/微信:153890879删除,谢谢!
上一篇:基于STM32的(GSM+DHT11)果园环境监测系统 下一篇:没有了

推荐图文


随机推荐