OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 5794|回复: 3

谁有BMP180STM32F4的程序

[复制链接]

7

主题

9

帖子

0

精华

初级会员

Rank: 2

积分
52
金钱
52
注册时间
2015-11-9
在线时间
2 小时
发表于 2015-12-18 15:51:57 | 显示全部楼层 |阅读模式
5金钱
谁有BMP180STM32F4的程序

最佳答案

查看完整内容[请看2#楼]

/**************************实现函数******************************************** *函数原型: void BMP180_init(void) *功  能: 供外部调用的初始化程序 *******************************************************************************/ void BMP180_init(void) {     _cm_Offset = 0;   _Pa_Offset = 0;        ...
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

18

主题

190

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1065
金钱
1065
注册时间
2012-6-18
在线时间
157 小时
发表于 2015-12-18 15:51:58 | 显示全部楼层
/**************************实现函数********************************************
*函数原型: void BMP180_init(void)
*功  能: 供外部调用的初始化程序
*******************************************************************************/
void BMP180_init(void) {  
  _cm_Offset = 0;
  _Pa_Offset = 0;               // 1hPa = 100Pa = 1mbar
   //初始化气压传感器,
   //MODE_ULTRA_HIGHRES  高精度测量模式
  BMP_init(MODE_ULTRA_HIGHRES, 0, 1);
}
/**************************实现函数********************************************
*函数原型: void BMP180_getTemperature(int32_t *_Temperature,u8 rw)
*功  能: 读取温度值。
输入 :
int32_t *_Temperature  温度结果存放的指针
u8 rw  是否需要等待 0 则不需要等待。
*******************************************************************************/
void BMP180_getTemperature(int32_t *_Temperature,u8 rw) {
  BMP180_calcTrueTemperature(rw);                            // force b5 update
  *_Temperature = ((b5 + (int32_t)8) >> 4);
}

void BMP180_getAltitude(int32_t *_centimeters,u8 rw){
  int32_t TruePressure;
  BMP180_calcTruePressure(&TruePressure,rw); 
  BMP180_newPressure(TruePressure);
   TruePressure = last_Pressure;
  *_centimeters =  4433000 * (1 - pow((TruePressure / (float)_param_datum), 0.1903)) + _cm_Offset;  
  // converting from float to int32_t truncates toward zero, 100.999985 becomes 100 resulting in 1 cm error (max).
}

void BMP180_calcTrueTemperature(u8 rw){
  int32_t ut,x1,x2,mctemp,mdtemp;
  if(rw){
  BMP180_writemem(CONTROL, READ_TEMPERATURE);
  delay_ms(10);                          // min. 4.5ms read Temp delay
  }
  BMP180_readmem(CONTROL_OUTPUT, 2, _buff); 
  ut = ((int32_t)_buff[0] << 8 | ((int32_t)_buff[1]));    // uncompensated temperature value
 
  // calculate temperature
  x1 = (((int32_t)ut - (int32_t)ac6) * (int32_t)ac5) >> 15;
  mctemp= mc;
  mdtemp= md;
  x2 = (mctemp <<11) / (x1 + mdtemp);
  b5 = x1 + x2;
}
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165371
金钱
165371
注册时间
2010-12-1
在线时间
2110 小时
发表于 2015-12-19 13:43:02 | 显示全部楼层
自己移植一个吧。或者自己写一个。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

7

主题

9

帖子

0

精华

初级会员

Rank: 2

积分
52
金钱
52
注册时间
2015-11-9
在线时间
2 小时
 楼主| 发表于 2015-12-24 12:10:45 | 显示全部楼层
回复【3楼】bg8wj:
---------------------------------
能把生成的工程文件发给我一下吗,谢谢啦
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-2-25 21:39

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表