First files added
This commit is contained in:
104
firmware/Drivers/bme280/BME280_STM32.h
Normal file
104
firmware/Drivers/bme280/BME280_STM32.h
Normal file
@@ -0,0 +1,104 @@
|
||||
/*
|
||||
***************************************************************************************************************
|
||||
***************************************************************************************************************
|
||||
***************************************************************************************************************
|
||||
|
||||
File: BME280_STM32.h
|
||||
Author: ControllersTech.com
|
||||
Updated: Dec 14, 2021
|
||||
|
||||
***************************************************************************************************************
|
||||
Copyright (C) 2017 ControllersTech.com
|
||||
|
||||
This is a free software under the GNU license, you can redistribute it and/or modify it under the terms
|
||||
of the GNU General Public License version 3 as published by the Free Software Foundation.
|
||||
This software library is shared with public for educational purposes, without WARRANTY and Author is not liable for any damages caused directly
|
||||
or indirectly by this software, read more about this on the GNU General Public License.
|
||||
|
||||
***************************************************************************************************************
|
||||
*/
|
||||
|
||||
|
||||
#ifndef INC_BME280_STM32_H_
|
||||
#define INC_BME280_STM32_H_
|
||||
|
||||
#include "stm32g0xx_hal.h"
|
||||
|
||||
/* Configuration for the BME280
|
||||
|
||||
* @osrs is the oversampling to improve the accuracy
|
||||
* if osrs is set to OSRS_OFF, the respective measurement will be skipped
|
||||
* It can be set to OSRS_1, OSRS_2, OSRS_4, etc. Check the header file
|
||||
*
|
||||
* @mode can be used to set the mode for the device
|
||||
* MODE_SLEEP will put the device in sleep
|
||||
* MODE_FORCED device goes back to sleep after one measurement. You need to use the BME280_WakeUP() function before every measurement
|
||||
* MODE_NORMAL device performs measurement in the normal mode. Check datasheet page no 16
|
||||
*
|
||||
* @t_sb is the standby time. The time sensor waits before performing another measurement
|
||||
* It is used along with the normal mode. Check datasheet page no 16 and page no 30
|
||||
*
|
||||
* @filter is the IIR filter coefficients
|
||||
* IIR is used to avoid the short term fluctuations
|
||||
* Check datasheet page no 18 and page no 30
|
||||
*/
|
||||
|
||||
int BME280_Config (uint8_t osrs_t, uint8_t osrs_p, uint8_t osrs_h, uint8_t mode, uint8_t t_sb, uint8_t filter);
|
||||
|
||||
|
||||
// Read the Trimming parameters saved in the NVM ROM of the device
|
||||
void TrimRead(void);
|
||||
|
||||
/* To be used when doing the force measurement
|
||||
* the Device need to be put in forced mode every time the measurement is needed
|
||||
*/
|
||||
void BME280_WakeUP(void);
|
||||
|
||||
/* measure the temp, pressure and humidity
|
||||
* the values will be stored in the parameters passed to the function
|
||||
*/
|
||||
void BME280_Measure (void);
|
||||
|
||||
|
||||
// Oversampling definitions
|
||||
#define OSRS_OFF 0x00
|
||||
#define OSRS_1 0x01
|
||||
#define OSRS_2 0x02
|
||||
#define OSRS_4 0x03
|
||||
#define OSRS_8 0x04
|
||||
#define OSRS_16 0x05
|
||||
|
||||
// MODE Definitions
|
||||
#define MODE_SLEEP 0x00
|
||||
#define MODE_FORCED 0x01
|
||||
#define MODE_NORMAL 0x03
|
||||
|
||||
// Standby Time
|
||||
#define T_SB_0p5 0x00
|
||||
#define T_SB_62p5 0x01
|
||||
#define T_SB_125 0x02
|
||||
#define T_SB_250 0x03
|
||||
#define T_SB_500 0x04
|
||||
#define T_SB_1000 0x05
|
||||
#define T_SB_10 0x06
|
||||
#define T_SB_20 0x07
|
||||
|
||||
// IIR Filter Coefficients
|
||||
#define IIR_OFF 0x00
|
||||
#define IIR_2 0x01
|
||||
#define IIR_4 0x02
|
||||
#define IIR_8 0x03
|
||||
#define IIR_16 0x04
|
||||
|
||||
|
||||
// REGISTERS DEFINITIONS
|
||||
#define ID_REG 0xD0
|
||||
#define RESET_REG 0xE0
|
||||
#define CTRL_HUM_REG 0xF2
|
||||
#define STATUS_REG 0xF3
|
||||
#define CTRL_MEAS_REG 0xF4
|
||||
#define CONFIG_REG 0xF5
|
||||
#define PRESS_MSB_REG 0xF7
|
||||
|
||||
|
||||
#endif /* INC_BME280_STM32_H_ */
|
Reference in New Issue
Block a user