STM32+MS5611测气压温度例程详解.doc

上传人:白大夫 文档编号:3273458 上传时间:2019-08-07 格式:DOC 页数:3 大小:17KB
返回 下载 相关 举报
STM32+MS5611测气压温度例程详解.doc_第1页
第1页 / 共3页
亲,该文档总共3页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《STM32+MS5611测气压温度例程详解.doc》由会员分享,可在线阅读,更多相关《STM32+MS5611测气压温度例程详解.doc(3页珍藏版)》请在三一文库上搜索。

1、STM32+MS5611测气压温度例程详解一、基础知识首先,MS5611是什么MS5611气压传感器是由MEAS(瑞士)推出的一款SPI和IC总线接口的新一代高分辨率气压传感器,分辨率可达到10cm。该传感器模块包括一个高线性度的压力传感器和一个超低功耗的24位模数转换器(工厂校准系数)。计算温度:D2 = MS5611_DO_Conversion(OSR_Temp);delay_ms(10);dT = D2 - (u32)c5)*256) ;Temperature = 2000 + dT*(float)c6)/8388608 ;计算大气压:D1 = MS5611_DO_Conversion(

2、OSR_Pressure) ;delay_ms(10) ;OFF = (int64_t)c2)*65536 + (int64_t)c4*dT)/128) ;SENS = (int64_t)c1)*32768) + (int64_t)c3*dT)/256) ;if(Temperature 2000) /TEMP2000T2 = (float)(dT*dT)/0x80000000 ;Aux = (Temperature - 2000)*(Temperature - 2000) ;OFF2 = 2.5f*Aux ;SENS2 = 1.25f*Aux ;if(Temperature -1500) /T

3、EMP-1500Aux = (Temperature+1500)*(Temperature+1500);OFF2 = OFF2 + 7*Aux;SENS2 = SENS2 + 5.5f*Aux;elseT2 = 0 ;OFF2 = 0 ;SENS2= 0 ;Temperature = Temperature - T2 ;OFF = OFF - OFF2 ;SENS = SENS - SENS2 ;Pressure = (D1*SENS)/2097152 - OFF)/32768 ;海拔计算:AlTItude = (44330.0f*(1.0f - pow(float)Pressure/1013

4、25.0f, 0.190295f) ;MS5611主要用于智能手机、海拔高度测量和导航辅助,做四轴的朋友一般都了解。其次,对于飞行器的姿态控制,我们使用GY-86 10DOF 的模块,里面带有MS5611 + MPU6050 + HMC5883,通过IIC协议读取数据进行操作。MS5611挂在MPU5060的从I2C接口上。MS5611的I2C地址为0b111011Cx,其中C比特位由CSB引脚决定,为CSB引脚的补码值(取反)。GY-86上 MS5611的CSB引脚接地,所以CSB引脚值为0,8位I2C地址为0b1110111x(0xEE),7位I2C地址为 0b1110111(0x77)。

5、这里,0b表示二进制,0x表示十六进制,数字前加0表示八进制。例如:077 /是8进制表示 ,0可以省略,因为C,C+规定不允许使用斜杠加10进制数来表示字符;0x3F /是16进制表示。这些都是C语言中的基础二、运行结果三、相应模块程序涉及的模块有:RCC:复位及时钟控制模块,用于初始化STM32 USART外设时钟及IO口复用时钟;IIC:模拟IIC 协议,好多人都说STM32的硬件IIC模块用不了,主要是因为STM32 的硬件 IIC 模块有个天生的 BUG,就是不能被中断,也就是IIC要处于中断的最高级,ST在自己后来的 DataSheet 中已经证实了这一点。Delay:利用系统时钟SysTIck,也号称滴答,写的延时模块;USART:串口模块;MS5611:MS5611模块配置。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1