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

  一、基础知识

  首先,MS5611是什么

  MS5611气压传感器是由MEAS(瑞士)推出的一款SPI和I²C总线接口的新一代高分辨率气压传感器,分辨率可达到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(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) //µ±Î¶ÈÖµTEMPСÓÚ2000ʱÐèÒª&TImes;öζȲ¹³¥

  {

  T2 = (float)(dT*dT)/0x80000000 ;

  Aux = (Temperature - 2000)*(Temperature - 2000) ;

  OFF2 = 2.5f*Aux ;

  SENS2 = 1.25f*Aux ;

  if(Temperature 《 -1500) //µ±Î¶ÈÖµTEMPСÓÚ-1500ʱÐèÒª&TImes;öζȲ¹³¥

  {

  Aux = (Temperature+1500)*(Temperature+1500);

  OFF2 = OFF2 + 7*Aux;

  SENS2 = SENS2 + 5.5f*Aux;

  }

  }

  else

  {

  T2 = 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/101325.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)。

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

  这里,0b表示二进制,0x表示十六进制,数字前加0表示八进制。例如:

  ‘\077’ //是8进制表示‘ ’,0可以省略,因为C,C++规定不允许使用斜杠加10进制数来表示字符;

  ‘\0x3F’ //是16进制表示。这些都是C语言中的基础

  二、运行结果

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

  三、相应模块

  程序涉及的模块有:

  RCC:复位及时钟控制模块,用于初始化STM32 USART外设时钟及IO口复用时钟;

  IIC:模拟IIC 协议,好多人都说STM32的硬件IIC模块用不了,主要是因为STM32 的硬件 IIC 模块有个天生的 BUG,就是不能被中断,也就是IIC要处于中断的最高级,ST在自己后来的 DataSheet 中已经证实了这一点。

  Delay:利用系统时钟SysTIck,也号称“滴答”,写的延时模块;

  USART:串口模块;

  MS5611:MS5611模块配置。

技术专区

  • Alexa语音服务软件扩展STM32Cube
  • 结合DNN API驱动未来神经网络应用的解决方案
  • 针对于高端移动通信和汽车市场的四集群设计
  • 一款基于帧捕捉的开源图形调试器应用设计
  • 即将成为标准配置的最新安全技术:后视摄像系统
  • STM32+MS5611测气压温度例程详解已关闭评论
    A+
发布日期:2019年07月14日  所属分类:物联网