首页 > 评测 > 亚星娱乐登录网页版 【技术分享】MPL3115A2模块测量气压与海拔高度
亚星娱乐登录网页版 【技术分享】MPL3115A2模块测量气压与海拔高度
- [导读]
- 本帖最后由 blust5 于 2023-5-10 16:25 编辑 #申请原创# @21小跑堂 前几天写了GD32开发板硬件I2C读写方面遇到的问题以及解决办法。https://bbs.yaxin1136.net/icview-3300590-1-1.html?fromuser=blust5https://
#申请原创#@21小跑堂
- init8_t MPL_Init(void)
- {
- uint8_t reg_data, get_data;
- reg_data = 0x39;
- eeprom_byte_write(& reg_data, CTRL_REG1_ADDR);
- eeprom_buffer_read(&get_data, CTRL_REG1_ADDR, 1);
- if(get_data==reg_data)
- {
- return 0;
- }
- else
- {
- return -1;
- }
- }
- int8_t MPL_Result_Read(void)
- {
- uint8_t status;
- uint8_t data_buf[5];
-
- eeprom_buffer_read(&status, DATA_STATUS_ADDR, 1);
- if((status & 0x08) == 0)
- {
- return -1;
- }
-
- eeprom_buffer_read(data_buf, DATA_START_ADDR, 5);
-
- return 0;
- }
- void MPL_Init(uint8_t mode)
- {
- uint8_t i, mode_data,reg_data, get_data=0;
-
- if(mode==0)
- {
- mode_data = 0x38;
- }
- else
- {
- mode_data = 0xB8;
- }
- reg_data = mode_data;
- eeprom_byte_write(& reg_data, CTRL_REG1_ADDR);
- eeprom_buffer_read(&get_data, CTRL_REG1_ADDR, 1);
- if(get_data!=reg_data)
- {
- MPL_ERR_Display();
- return;
- }
- reg_data = 0x07;
- eeprom_byte_write(& reg_data, PT_DATA_CFG_ADDR);
- eeprom_buffer_read(&get_data, PT_DATA_CFG_ADDR, 1);
- if(get_data!=reg_data)
- {
- MPL_ERR_Display();
- return;
- }
- reg_data = mode_data + 1;
- eeprom_byte_write(& reg_data, CTRL_REG1_ADDR);
- eeprom_buffer_read(&get_data, CTRL_REG1_ADDR, 1);
- if(get_data!=reg_data)
- {
- MPL_ERR_Display();
- return;
- }
- MPL_OK_Display();
- }
- int8_t MPL_Result_Read(void)
- {
- uint8_t status;
- uint8_t data_buf[5];
-
- eeprom_buffer_read(&status, DATA_STATUS_ADDR, 1);
- if((status & 0x08) == 0)
- {
- return -1;
- }
-
- eeprom_buffer_read(data_buf, DATA_START_ADDR, 5);
- height_integer = (uint32_t)data_buf[0]*0x100 + (uint32_t)data_buf[1];
- height_decimal = (data_buf[2]>>4) * 625;
- temp_integer = data_buf[3];
- temp_decimal = (data_buf[4]>>4) * 625;
- pressure_value = (uint32_t)data_buf[0]*0x400 + (uint32_t)data_buf[1]*0x04 + (data_buf[2]>>6);
-
- return 0;
- }
气压日变化
气压日变化的特点是在一天中有一个最高值和一个次高值,一个最低值和一个次低值。最高值出现在9 ~10时,次高值出现在21~22时;最低值出现在15~16时,次低值出现在3~4时。
气压的日变化在低纬度地区比较明显。气压日振幅(一日中最高值与最低值之差,又称为日较差)随纬度的增高而减小。在低纬地区,平均日振幅可达3~4百帕,到纬度50度附近日振幅不足1 百帕了。不同纬度上气压日变化的情况,在我国中纬度地区气压日振幅为1~2.5百帕,在低纬地区为2.5~4百帕,而在西藏高原东部边缘的山谷中气压的日振幅有时可达6. 5百帕。
注:代码里配置寄存器时eeprom_byte_write(& reg_data, CTRL_REG1_ADDR);这里&和reg_data中间不应该有空格的,但是不加空格的话论坛会显示_data。这个只能在这里做一个说明。
附件如下
- 本文系21ic原创,未经许可禁止转载!
亚星娱乐官网app下载中心
- 联系人:巧克力娃娃
- 邮箱:[email protected]
- 我要投稿
-
欢迎入驻,开放投稿
-
RAK831 Lite:基于树莓派3的LoRa网关... 2022-06-17
-
Imagination推出PowerVR AX2185和AX2145神经... 2022-06-17
-
ODROID-GO是一款兼容Arduino的基于ESP32的便... 2022-06-17
-
兼职Java开发
预算:¥10000 5小时前
-
FPGA SCALER IP
预算:¥10000 23小时前
-
水阀流量传感器控制
预算:¥10000 1天前
-
摩托车流水爆闪转向灯
预算:¥10000 1天前
-
fpga做个fir滤波器
预算:¥300 2天前
-
51单片机websocket
预算:¥500 3天前