基于正点原子STM32F103精英板IIC实验的MS5611气压计的使用

基于正点原子STM32F103精英板IIC实验的MS5611气压计的使用

MS5611是一款气压计,能够提供高精度的气压值与温度值,这次做项目正好需要用到这款传感器,包括之前也没好好学习用过IIC,所以写下博客记录一下。

如果有需要使用的朋友可以去https://download.csdn.net/download/a792544191/12115530下载,我把代码资源放到里面了,如果是STM32F103精英板的,在IIC1上接上模块就能直接使用了。我主要在原子哥的myiic文件根据数据手册和网上大佬们的实验思路,添加了一些iic函数,同时新增了一个ms5611的文件用于读取ms5611数据。

首先关于IIC的通信协议,网上应该很多教程这里就不一一赘述了,主要包括了
void IIC_Init()
void IIC_Start(void);
void IIC_Stop(void);
void IIC_Send_Byte(u8 txd);
u8 IIC_Read_Byte(unsigned char ack);
u8 IIC_Wait_Ack(void);
void IIC_Ack(void);
void IIC_NAck(void);
这几个函数,都是正点原子IIC实验里的。之后根据MS5611数据手册进行IIC时序的仿真。

MS5611部分:
MS5611的命令有5种:
基于正点原子STM32F103精英板IIC实验的MS5611气压计的使用_第1张图片
同时也提供了模块内各个命令符格式:
基于正点原子STM32F103精英板IIC实验的MS5611气压计的使用_第2张图片
获得了数据后就可以根据数据手册里的获取数据流程进行编写程序,主要流程如下:
基于正点原子STM32F103精英板IIC实验的MS5611气压计的使用_第3张图片
在这之中,要对压力和温度进行一个补偿:
基于正点原子STM32F103精英板IIC实验的MS5611气压计的使用_第4张图片
以上就是获得精确压力和温度的大体流程,数据手册里写的很清楚了。
同时数据手册里给出了SPI读取与IIC读取两种方式的时序:
基于正点原子STM32F103精英板IIC实验的MS5611气压计的使用_第5张图片
基于正点原子STM32F103精英板IIC实验的MS5611气压计的使用_第6张图片
不得不说数据手册给的实在详细,比如对OSR=4096,type=D1,直接给画了个图,告诉你D1怎么求,几个字节。
以上就是气压计MS5611的使用过程,体验不错。

你可能感兴趣的:(基于正点原子STM32F103精英板IIC实验的MS5611气压计的使用)