IoT_SCV_CH584M/bsp/inc/bsp_bmp390.h

140 lines
4.5 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.

#ifndef __BSP_BMP390_H
#define __BSP_BMP390_H
#include "CH58x_common.h"
#define BMP390_IN_START (0x0001 << 0)
#define BMP390_OUT_START (0x0001 << 1)
#define BMP390_ATOM_START (0x0001 << 2)
#define BMP390_EVT_READ (0x0001 << 3)
#define BMP390_IN_READ (0x0001 << 4)
#define BMP390_OUT_READ (0x0001 << 5)
#define BMP390_ATOM_READ (0x0001 << 6)
#define CHECK_EVT_START (0x0001 << 0)
#define MOTOR_STOP_EVT (0x0001 << 1)
#define AUTO_CLOSE_CHECK_EVT (0x0001 << 2)
#define AUTO_CLOSE_TIMEOUT_EVT (0x0001 << 3)
#define MICRO_LEAK_CHECK_EVT (0x0001 << 4) // 微泄漏检测事件
#define AUTO_CLOSE_NO_FLOW_THRESHOLD 30
#define AUTO_CLOSE_CHECK_INTERVAL_MS (5 * 60 * 1000)
#define AUTO_CLOSE_CHECK_COUNT 6
#define AUTO_CLOSE_TOTAL_TIME_MS (30 * 60 * 1000)
#define MICRO_LEAK_CHECK_INTERVAL_MS (10000) // 微泄漏检测间隔10秒
#define MICRO_LEAK_CHECK_COUNT 6 // 微泄漏检测确认次数6次约1分钟
void PRESS_LowPower(void);
void BSP_PRESS_Init(void);
void Function_Check(void);
extern uint8_t volatile fault_state;
extern uint8_t keydown_flag;
// 微泄漏检测相关函数
void startMicroLeakDetection(void);
#include "bmp3.h"
/*!
* @brief Function to select the interface between SPI and I2C.
*
* @param[in] bmp3 : Structure instance of bmp3_dev
* @param[in] intf : Interface selection parameter
*
* @return Status of execution
* @retval 0 -> Success
* @retval < 0 -> Failure Info
*/
BMP3_INTF_RET_TYPE BMP390_OUT_InterfaceInit(struct bmp3_dev *bmp3, uint8_t intf);
/*!
* @brief Function for reading the sensor's registers through I2C bus.
*
* @param[in] reg_addr : Register address.
* @param[out] reg_data : Pointer to the data buffer to store the read data.
* @param[in] len : No of bytes to read.
* @param[in] intf_ptr : Interface pointer
*
* @return Status of execution
* @retval = BMP3_INTF_RET_SUCCESS -> Success
* @retval != BMP3_INTF_RET_SUCCESS -> Failure Info
*
*/
BMP3_INTF_RET_TYPE bmp3_i2c_read(uint8_t reg_addr, uint8_t *reg_data, uint32_t len, void *intf_ptr);
/*!
* @brief Function for writing the sensor's registers through I2C bus.
*
* @param[in] reg_addr : Register address.
* @param[in] reg_data : Pointer to the data buffer whose value is to be written.
* @param[in] len : No of bytes to write.
* @param[in] intf_ptr : Interface pointer
*
* @return Status of execution
* @retval = BMP3_INTF_RET_SUCCESS -> Success
* @retval != BMP3_INTF_RET_SUCCESS -> Failure Info
*
*/
BMP3_INTF_RET_TYPE bmp3_i2c_write(uint8_t reg_addr, const uint8_t *reg_data, uint32_t len, void *intf_ptr);
/*!
* @brief Function for reading the sensor's registers through SPI bus.
*
* @param[in] reg_addr : Register address.
* @param[out] reg_data : Pointer to the data buffer to store the read data.
* @param[in] len : No of bytes to read.
* @param[in] intf_ptr : Interface pointer
*
* @return Status of execution
* @retval = BMP3_INTF_RET_SUCCESS -> Success
* @retval != BMP3_INTF_RET_SUCCESS -> Failure Info
*
*/
BMP3_INTF_RET_TYPE BMP390_OUT_SPI_Read(uint8_t reg_addr, uint8_t *reg_data, uint32_t len, void *intf_ptr);
/*!
* @brief Function for writing the sensor's registers through SPI bus.
*
* @param[in] reg_addr : Register address.
* @param[in] reg_data : Pointer to the data buffer whose data has to be written.
* @param[in] len : No of bytes to write.
* @param[in] intf_ptr : Interface pointer
*
* @return Status of execution
* @retval = BMP3_INTF_RET_SUCCESS -> Success
* @retval != BMP3_INTF_RET_SUCCESS -> Failure Info
*
*/
BMP3_INTF_RET_TYPE BMP390_OUT_SPI_Write(uint8_t reg_addr, const uint8_t *reg_data, uint32_t len, void *intf_ptr);
/*!
* @brief This function provides the delay for required time (Microsecond) as per the input provided in some of the
* APIs.
*
* @param[in] period : The required wait time in microsecond.
* @param[in] intf_ptr : Interface pointer
*
* @return void.
*
*/
void bmp3_delay_us(uint32_t period, void *intf_ptr);
/*!
* @brief Prints the execution status of the APIs.
*
* @param[in] api_name : Name of the API whose execution status has to be printed.
* @param[in] rslt : Error code returned by the API whose execution status has to be printed.
*
* @return void.
*/
void bmp3_check_rslt(const char api_name[], int8_t rslt);
// 新增延时关阀功能相关函数声明
uint8_t isNoFlowDetected(void);
void startAutoCloseTimer(void);
void stopAutoCloseTimer(void);
#endif