micro_climate/Drivers/HP203B/hp203b.c

49 lines
1.1 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#include "hp203b.h"
#include "i2c.h"
#include "anemometer_dev.h"
/****************************
*名称set_mode
*功能:配置从机模式,设置通道及采样率
*参数:无
*
*
*返回:无
*****************************/
void hp203_set_mode()
{
uint8_t cmd[1] = {HP20X_CONVERT_OSR1024};
HAL_I2C_Master_Transmit(&hi2c3, HP20X_ADDRESSCMD, cmd, 1, 0xff);
}
/****************************
*名称Hp203bReadPressure
*功能:获取气压数据
*参数Press--气压值
*
*
*返回:无
*****************************/
long Hp203b_Pressure = 0;
uint8_t Hp203bPressure_Temp[3] = {0};
void Hp203bReadPressure(void)
{
uint8_t read_command[1] = {HP20X_READ_P};
HAL_I2C_Master_Transmit(&hi2c3, HP20X_ADDRESSCMD, read_command, 1, 0xff);
HAL_I2C_Master_Receive(&hi2c3, HP20X_ADDRESSCMD, Hp203bPressure_Temp, 3, 0xff);
Hp203b_Pressure = Hp203bPressure_Temp[0];
Hp203b_Pressure <<= 8;
Hp203b_Pressure |= Hp203bPressure_Temp[1];
Hp203b_Pressure <<= 8;
Hp203b_Pressure |= Hp203bPressure_Temp[2];
Hp203b_Pressure = Hp203b_Pressure / 100;
g_stMcs_Para.pressure = Hp203b_Pressure;
}