Example of hello world for X-NUCLEO-IKS01A2
Dependencies: X_NUCLEO_IKS01A2 mbed
Fork of HelloWorld_IKS01A2 by
Hello World Demo Application based on sensor expansion board X-NUCLEO-IKS01A2
Main function is to show how to get humidity, temperature, pressure, accelerometer, magnetomer and gyroscope data using the sensor expansion board and send them using UART to a connected PC or Desktop and display it on terminal applications like TeraTerm.
X_NUCLEO_IKS01A2/Components/HTS221Sensor/HTS221_Driver.h@0:69566eea0fba, 2016-08-12 (annotated)
- Committer:
- cparata
- Date:
- Fri Aug 12 13:40:12 2016 +0000
- Revision:
- 0:69566eea0fba
First release of Hello World for IKS01A2
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| cparata | 0:69566eea0fba | 1 | /** |
| cparata | 0:69566eea0fba | 2 | ****************************************************************************** |
| cparata | 0:69566eea0fba | 3 | * @file HTS221_Driver.h |
| cparata | 0:69566eea0fba | 4 | * @author HESA Application Team |
| cparata | 0:69566eea0fba | 5 | * @version V1.1 |
| cparata | 0:69566eea0fba | 6 | * @date 10-August-2016 |
| cparata | 0:69566eea0fba | 7 | * @brief HTS221 driver header file |
| cparata | 0:69566eea0fba | 8 | ****************************************************************************** |
| cparata | 0:69566eea0fba | 9 | * @attention |
| cparata | 0:69566eea0fba | 10 | * |
| cparata | 0:69566eea0fba | 11 | * <h2><center>© COPYRIGHT(c) 2016 STMicroelectronics</center></h2> |
| cparata | 0:69566eea0fba | 12 | * |
| cparata | 0:69566eea0fba | 13 | * Redistribution and use in source and binary forms, with or without modification, |
| cparata | 0:69566eea0fba | 14 | * are permitted provided that the following conditions are met: |
| cparata | 0:69566eea0fba | 15 | * 1. Redistributions of source code must retain the above copyright notice, |
| cparata | 0:69566eea0fba | 16 | * this list of conditions and the following disclaimer. |
| cparata | 0:69566eea0fba | 17 | * 2. Redistributions in binary form must reproduce the above copyright notice, |
| cparata | 0:69566eea0fba | 18 | * this list of conditions and the following disclaimer in the documentation |
| cparata | 0:69566eea0fba | 19 | * and/or other materials provided with the distribution. |
| cparata | 0:69566eea0fba | 20 | * 3. Neither the name of STMicroelectronics nor the names of its contributors |
| cparata | 0:69566eea0fba | 21 | * may be used to endorse or promote products derived from this software |
| cparata | 0:69566eea0fba | 22 | * without specific prior written permission. |
| cparata | 0:69566eea0fba | 23 | * |
| cparata | 0:69566eea0fba | 24 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" |
| cparata | 0:69566eea0fba | 25 | * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE |
| cparata | 0:69566eea0fba | 26 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE |
| cparata | 0:69566eea0fba | 27 | * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE |
| cparata | 0:69566eea0fba | 28 | * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL |
| cparata | 0:69566eea0fba | 29 | * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR |
| cparata | 0:69566eea0fba | 30 | * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER |
| cparata | 0:69566eea0fba | 31 | * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, |
| cparata | 0:69566eea0fba | 32 | * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
| cparata | 0:69566eea0fba | 33 | * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
| cparata | 0:69566eea0fba | 34 | * |
| cparata | 0:69566eea0fba | 35 | ****************************************************************************** |
| cparata | 0:69566eea0fba | 36 | */ |
| cparata | 0:69566eea0fba | 37 | |
| cparata | 0:69566eea0fba | 38 | /* Define to prevent recursive inclusion -------------------------------------*/ |
| cparata | 0:69566eea0fba | 39 | #ifndef __HTS221_DRIVER__H |
| cparata | 0:69566eea0fba | 40 | #define __HTS221_DRIVER__H |
| cparata | 0:69566eea0fba | 41 | |
| cparata | 0:69566eea0fba | 42 | #include <stdint.h> |
| cparata | 0:69566eea0fba | 43 | |
| cparata | 0:69566eea0fba | 44 | #ifdef __cplusplus |
| cparata | 0:69566eea0fba | 45 | extern "C" { |
| cparata | 0:69566eea0fba | 46 | #endif |
| cparata | 0:69566eea0fba | 47 | |
| cparata | 0:69566eea0fba | 48 | /* Uncomment the line below to expanse the "assert_param" macro in the drivers code */ |
| cparata | 0:69566eea0fba | 49 | #define USE_FULL_ASSERT_HTS221 |
| cparata | 0:69566eea0fba | 50 | |
| cparata | 0:69566eea0fba | 51 | /* Exported macro ------------------------------------------------------------*/ |
| cparata | 0:69566eea0fba | 52 | #ifdef USE_FULL_ASSERT_HTS221 |
| cparata | 0:69566eea0fba | 53 | |
| cparata | 0:69566eea0fba | 54 | /** |
| cparata | 0:69566eea0fba | 55 | * @brief The assert_param macro is used for function's parameters check. |
| cparata | 0:69566eea0fba | 56 | * @param expr: If expr is false, it calls assert_failed function which reports |
| cparata | 0:69566eea0fba | 57 | * the name of the source file and the source line number of the call |
| cparata | 0:69566eea0fba | 58 | * that failed. If expr is true, it returns no value. |
| cparata | 0:69566eea0fba | 59 | * @retval None |
| cparata | 0:69566eea0fba | 60 | */ |
| cparata | 0:69566eea0fba | 61 | #define HTS221_assert_param(expr) ((expr) ? (void)0 : HTS221_assert_failed((uint8_t *)__FILE__, __LINE__)) |
| cparata | 0:69566eea0fba | 62 | /* Exported functions ------------------------------------------------------- */ |
| cparata | 0:69566eea0fba | 63 | void HTS221_assert_failed(uint8_t* file, uint32_t line); |
| cparata | 0:69566eea0fba | 64 | #else |
| cparata | 0:69566eea0fba | 65 | #define HTS221_assert_param(expr) ((void)0) |
| cparata | 0:69566eea0fba | 66 | #endif /* USE_FULL_ASSERT_HTS221 */ |
| cparata | 0:69566eea0fba | 67 | |
| cparata | 0:69566eea0fba | 68 | /** @addtogroup Environmental_Sensor |
| cparata | 0:69566eea0fba | 69 | * @{ |
| cparata | 0:69566eea0fba | 70 | */ |
| cparata | 0:69566eea0fba | 71 | |
| cparata | 0:69566eea0fba | 72 | /** @addtogroup HTS221_DRIVER |
| cparata | 0:69566eea0fba | 73 | * @{ |
| cparata | 0:69566eea0fba | 74 | */ |
| cparata | 0:69566eea0fba | 75 | |
| cparata | 0:69566eea0fba | 76 | /* Exported Types -------------------------------------------------------------*/ |
| cparata | 0:69566eea0fba | 77 | /** @defgroup HTS221_Exported_Types |
| cparata | 0:69566eea0fba | 78 | * @{ |
| cparata | 0:69566eea0fba | 79 | */ |
| cparata | 0:69566eea0fba | 80 | |
| cparata | 0:69566eea0fba | 81 | |
| cparata | 0:69566eea0fba | 82 | /** |
| cparata | 0:69566eea0fba | 83 | * @brief Error code type. |
| cparata | 0:69566eea0fba | 84 | */ |
| cparata | 0:69566eea0fba | 85 | typedef enum {HTS221_OK = (uint8_t)0, HTS221_ERROR = !HTS221_OK} HTS221_Error_et; |
| cparata | 0:69566eea0fba | 86 | |
| cparata | 0:69566eea0fba | 87 | /** |
| cparata | 0:69566eea0fba | 88 | * @brief State type. |
| cparata | 0:69566eea0fba | 89 | */ |
| cparata | 0:69566eea0fba | 90 | typedef enum {HTS221_DISABLE = (uint8_t)0, HTS221_ENABLE = !HTS221_DISABLE} HTS221_State_et; |
| cparata | 0:69566eea0fba | 91 | #define IS_HTS221_State(MODE) ((MODE == HTS221_ENABLE) || (MODE == HTS221_DISABLE)) |
| cparata | 0:69566eea0fba | 92 | |
| cparata | 0:69566eea0fba | 93 | /** |
| cparata | 0:69566eea0fba | 94 | * @brief Bit status type. |
| cparata | 0:69566eea0fba | 95 | */ |
| cparata | 0:69566eea0fba | 96 | typedef enum {HTS221_RESET = (uint8_t)0, HTS221_SET = !HTS221_RESET} HTS221_BitStatus_et; |
| cparata | 0:69566eea0fba | 97 | #define IS_HTS221_BitStatus(MODE) ((MODE == HTS221_RESET) || (MODE == HTS221_SET)) |
| cparata | 0:69566eea0fba | 98 | |
| cparata | 0:69566eea0fba | 99 | /** |
| cparata | 0:69566eea0fba | 100 | * @brief Humidity average. |
| cparata | 0:69566eea0fba | 101 | */ |
| cparata | 0:69566eea0fba | 102 | typedef enum |
| cparata | 0:69566eea0fba | 103 | { |
| cparata | 0:69566eea0fba | 104 | HTS221_AVGH_4 = (uint8_t)0x00, /*!< Internal average on 4 samples */ |
| cparata | 0:69566eea0fba | 105 | HTS221_AVGH_8 = (uint8_t)0x01, /*!< Internal average on 8 samples */ |
| cparata | 0:69566eea0fba | 106 | HTS221_AVGH_16 = (uint8_t)0x02, /*!< Internal average on 16 samples */ |
| cparata | 0:69566eea0fba | 107 | HTS221_AVGH_32 = (uint8_t)0x03, /*!< Internal average on 32 samples */ |
| cparata | 0:69566eea0fba | 108 | HTS221_AVGH_64 = (uint8_t)0x04, /*!< Internal average on 64 samples */ |
| cparata | 0:69566eea0fba | 109 | HTS221_AVGH_128 = (uint8_t)0x05, /*!< Internal average on 128 samples */ |
| cparata | 0:69566eea0fba | 110 | HTS221_AVGH_256 = (uint8_t)0x06, /*!< Internal average on 256 samples */ |
| cparata | 0:69566eea0fba | 111 | HTS221_AVGH_512 = (uint8_t)0x07 /*!< Internal average on 512 samples */ |
| cparata | 0:69566eea0fba | 112 | } HTS221_Avgh_et; |
| cparata | 0:69566eea0fba | 113 | #define IS_HTS221_AVGH(AVGH) ((AVGH == HTS221_AVGH_4) || (AVGH == HTS221_AVGH_8) || \ |
| cparata | 0:69566eea0fba | 114 | (AVGH == HTS221_AVGH_16) || (AVGH == HTS221_AVGH_32) || \ |
| cparata | 0:69566eea0fba | 115 | (AVGH == HTS221_AVGH_64) || (AVGH == HTS221_AVGH_128) || \ |
| cparata | 0:69566eea0fba | 116 | (AVGH == HTS221_AVGH_256) || (AVGH == HTS221_AVGH_512)) |
| cparata | 0:69566eea0fba | 117 | |
| cparata | 0:69566eea0fba | 118 | /** |
| cparata | 0:69566eea0fba | 119 | * @brief Temperature average. |
| cparata | 0:69566eea0fba | 120 | */ |
| cparata | 0:69566eea0fba | 121 | typedef enum |
| cparata | 0:69566eea0fba | 122 | { |
| cparata | 0:69566eea0fba | 123 | HTS221_AVGT_2 = (uint8_t)0x00, /*!< Internal average on 2 samples */ |
| cparata | 0:69566eea0fba | 124 | HTS221_AVGT_4 = (uint8_t)0x08, /*!< Internal average on 4 samples */ |
| cparata | 0:69566eea0fba | 125 | HTS221_AVGT_8 = (uint8_t)0x10, /*!< Internal average on 8 samples */ |
| cparata | 0:69566eea0fba | 126 | HTS221_AVGT_16 = (uint8_t)0x18, /*!< Internal average on 16 samples */ |
| cparata | 0:69566eea0fba | 127 | HTS221_AVGT_32 = (uint8_t)0x20, /*!< Internal average on 32 samples */ |
| cparata | 0:69566eea0fba | 128 | HTS221_AVGT_64 = (uint8_t)0x28, /*!< Internal average on 64 samples */ |
| cparata | 0:69566eea0fba | 129 | HTS221_AVGT_128 = (uint8_t)0x30, /*!< Internal average on 128 samples */ |
| cparata | 0:69566eea0fba | 130 | HTS221_AVGT_256 = (uint8_t)0x38 /*!< Internal average on 256 samples */ |
| cparata | 0:69566eea0fba | 131 | } HTS221_Avgt_et; |
| cparata | 0:69566eea0fba | 132 | #define IS_HTS221_AVGT(AVGT) ((AVGT == HTS221_AVGT_2) || (AVGT == HTS221_AVGT_4) || \ |
| cparata | 0:69566eea0fba | 133 | (AVGT == HTS221_AVGT_8) || (AVGT == HTS221_AVGT_16) || \ |
| cparata | 0:69566eea0fba | 134 | (AVGT == HTS221_AVGT_32) || (AVGT == HTS221_AVGT_64) || \ |
| cparata | 0:69566eea0fba | 135 | (AVGT == HTS221_AVGT_128) || (AVGT == HTS221_AVGT_256)) |
| cparata | 0:69566eea0fba | 136 | |
| cparata | 0:69566eea0fba | 137 | /** |
| cparata | 0:69566eea0fba | 138 | * @brief Output data rate configuration. |
| cparata | 0:69566eea0fba | 139 | */ |
| cparata | 0:69566eea0fba | 140 | typedef enum |
| cparata | 0:69566eea0fba | 141 | { |
| cparata | 0:69566eea0fba | 142 | HTS221_ODR_ONE_SHOT = (uint8_t)0x00, /*!< Output Data Rate: one shot */ |
| cparata | 0:69566eea0fba | 143 | HTS221_ODR_1HZ = (uint8_t)0x01, /*!< Output Data Rate: 1Hz */ |
| cparata | 0:69566eea0fba | 144 | HTS221_ODR_7HZ = (uint8_t)0x02, /*!< Output Data Rate: 7Hz */ |
| cparata | 0:69566eea0fba | 145 | HTS221_ODR_12_5HZ = (uint8_t)0x03, /*!< Output Data Rate: 12.5Hz */ |
| cparata | 0:69566eea0fba | 146 | } HTS221_Odr_et; |
| cparata | 0:69566eea0fba | 147 | #define IS_HTS221_ODR(ODR) ((ODR == HTS221_ODR_ONE_SHOT) || (ODR == HTS221_ODR_1HZ) || \ |
| cparata | 0:69566eea0fba | 148 | (ODR == HTS221_ODR_7HZ) || (ODR == HTS221_ODR_12_5HZ)) |
| cparata | 0:69566eea0fba | 149 | |
| cparata | 0:69566eea0fba | 150 | |
| cparata | 0:69566eea0fba | 151 | /** |
| cparata | 0:69566eea0fba | 152 | * @brief Push-pull/Open Drain selection on DRDY pin. |
| cparata | 0:69566eea0fba | 153 | */ |
| cparata | 0:69566eea0fba | 154 | typedef enum |
| cparata | 0:69566eea0fba | 155 | { |
| cparata | 0:69566eea0fba | 156 | HTS221_PUSHPULL = (uint8_t)0x00, /*!< DRDY pin in push pull */ |
| cparata | 0:69566eea0fba | 157 | HTS221_OPENDRAIN = (uint8_t)0x40 /*!< DRDY pin in open drain */ |
| cparata | 0:69566eea0fba | 158 | } HTS221_OutputType_et; |
| cparata | 0:69566eea0fba | 159 | #define IS_HTS221_OutputType(MODE) ((MODE == HTS221_PUSHPULL) || (MODE == HTS221_OPENDRAIN)) |
| cparata | 0:69566eea0fba | 160 | |
| cparata | 0:69566eea0fba | 161 | /** |
| cparata | 0:69566eea0fba | 162 | * @brief Active level of DRDY pin. |
| cparata | 0:69566eea0fba | 163 | */ |
| cparata | 0:69566eea0fba | 164 | typedef enum |
| cparata | 0:69566eea0fba | 165 | { |
| cparata | 0:69566eea0fba | 166 | HTS221_HIGH_LVL = (uint8_t)0x00, /*!< HIGH state level for DRDY pin */ |
| cparata | 0:69566eea0fba | 167 | HTS221_LOW_LVL = (uint8_t)0x80 /*!< LOW state level for DRDY pin */ |
| cparata | 0:69566eea0fba | 168 | } HTS221_DrdyLevel_et; |
| cparata | 0:69566eea0fba | 169 | #define IS_HTS221_DrdyLevelType(MODE) ((MODE == HTS221_HIGH_LVL) || (MODE == HTS221_LOW_LVL)) |
| cparata | 0:69566eea0fba | 170 | |
| cparata | 0:69566eea0fba | 171 | /** |
| cparata | 0:69566eea0fba | 172 | * @brief Driver Version Info structure definition. |
| cparata | 0:69566eea0fba | 173 | */ |
| cparata | 0:69566eea0fba | 174 | typedef struct |
| cparata | 0:69566eea0fba | 175 | { |
| cparata | 0:69566eea0fba | 176 | uint8_t Major; |
| cparata | 0:69566eea0fba | 177 | uint8_t Minor; |
| cparata | 0:69566eea0fba | 178 | uint8_t Point; |
| cparata | 0:69566eea0fba | 179 | } HTS221_DriverVersion_st; |
| cparata | 0:69566eea0fba | 180 | |
| cparata | 0:69566eea0fba | 181 | |
| cparata | 0:69566eea0fba | 182 | /** |
| cparata | 0:69566eea0fba | 183 | * @brief HTS221 Init structure definition. |
| cparata | 0:69566eea0fba | 184 | */ |
| cparata | 0:69566eea0fba | 185 | typedef struct |
| cparata | 0:69566eea0fba | 186 | { |
| cparata | 0:69566eea0fba | 187 | HTS221_Avgh_et avg_h; /*!< Humidity average */ |
| cparata | 0:69566eea0fba | 188 | HTS221_Avgt_et avg_t; /*!< Temperature average */ |
| cparata | 0:69566eea0fba | 189 | HTS221_Odr_et odr; /*!< Output data rate */ |
| cparata | 0:69566eea0fba | 190 | HTS221_State_et bdu_status; /*!< HTS221_ENABLE/HTS221_DISABLE the block data update */ |
| cparata | 0:69566eea0fba | 191 | HTS221_State_et heater_status; /*!< HTS221_ENABLE/HTS221_DISABLE the internal heater */ |
| cparata | 0:69566eea0fba | 192 | |
| cparata | 0:69566eea0fba | 193 | HTS221_DrdyLevel_et irq_level; /*!< HTS221_HIGH_LVL/HTS221_LOW_LVL the level for DRDY pin */ |
| cparata | 0:69566eea0fba | 194 | HTS221_OutputType_et irq_output_type; /*!< Output configuration for DRDY pin */ |
| cparata | 0:69566eea0fba | 195 | HTS221_State_et irq_enable; /*!< HTS221_ENABLE/HTS221_DISABLE interrupt on DRDY pin */ |
| cparata | 0:69566eea0fba | 196 | } HTS221_Init_st; |
| cparata | 0:69566eea0fba | 197 | |
| cparata | 0:69566eea0fba | 198 | /** |
| cparata | 0:69566eea0fba | 199 | * @} |
| cparata | 0:69566eea0fba | 200 | */ |
| cparata | 0:69566eea0fba | 201 | |
| cparata | 0:69566eea0fba | 202 | |
| cparata | 0:69566eea0fba | 203 | /* Exported Constants ---------------------------------------------------------*/ |
| cparata | 0:69566eea0fba | 204 | /** @defgroup HTS221_Exported_Constants |
| cparata | 0:69566eea0fba | 205 | * @{ |
| cparata | 0:69566eea0fba | 206 | */ |
| cparata | 0:69566eea0fba | 207 | |
| cparata | 0:69566eea0fba | 208 | /** |
| cparata | 0:69566eea0fba | 209 | * @brief Bitfield positioning. |
| cparata | 0:69566eea0fba | 210 | */ |
| cparata | 0:69566eea0fba | 211 | #define HTS221_BIT(x) ((uint8_t)x) |
| cparata | 0:69566eea0fba | 212 | |
| cparata | 0:69566eea0fba | 213 | /** |
| cparata | 0:69566eea0fba | 214 | * @brief I2C address. |
| cparata | 0:69566eea0fba | 215 | */ |
| cparata | 0:69566eea0fba | 216 | #define HTS221_I2C_ADDRESS (uint8_t)0xBE |
| cparata | 0:69566eea0fba | 217 | |
| cparata | 0:69566eea0fba | 218 | /** |
| cparata | 0:69566eea0fba | 219 | * @brief Driver version. |
| cparata | 0:69566eea0fba | 220 | */ |
| cparata | 0:69566eea0fba | 221 | #define HTS221_DRIVER_VERSION_MAJOR (uint8_t)1 |
| cparata | 0:69566eea0fba | 222 | #define HTS221_DRIVER_VERSION_MINOR (uint8_t)1 |
| cparata | 0:69566eea0fba | 223 | #define HTS221_DRIVER_VERSION_POINT (uint8_t)0 |
| cparata | 0:69566eea0fba | 224 | |
| cparata | 0:69566eea0fba | 225 | /** |
| cparata | 0:69566eea0fba | 226 | * @addtogroup HTS221_Registers |
| cparata | 0:69566eea0fba | 227 | * @{ |
| cparata | 0:69566eea0fba | 228 | */ |
| cparata | 0:69566eea0fba | 229 | |
| cparata | 0:69566eea0fba | 230 | |
| cparata | 0:69566eea0fba | 231 | /** |
| cparata | 0:69566eea0fba | 232 | * @brief Device Identification register. |
| cparata | 0:69566eea0fba | 233 | * \code |
| cparata | 0:69566eea0fba | 234 | * Read |
| cparata | 0:69566eea0fba | 235 | * Default value: 0xBC |
| cparata | 0:69566eea0fba | 236 | * 7:0 This read-only register contains the device identifier for HTS221. |
| cparata | 0:69566eea0fba | 237 | * \endcode |
| cparata | 0:69566eea0fba | 238 | */ |
| cparata | 0:69566eea0fba | 239 | #define HTS221_WHO_AM_I_REG (uint8_t)0x0F |
| cparata | 0:69566eea0fba | 240 | |
| cparata | 0:69566eea0fba | 241 | /** |
| cparata | 0:69566eea0fba | 242 | * @brief Device Identification value. |
| cparata | 0:69566eea0fba | 243 | */ |
| cparata | 0:69566eea0fba | 244 | #define HTS221_WHO_AM_I_VAL (uint8_t)0xBC |
| cparata | 0:69566eea0fba | 245 | |
| cparata | 0:69566eea0fba | 246 | |
| cparata | 0:69566eea0fba | 247 | /** |
| cparata | 0:69566eea0fba | 248 | * @brief Humidity and temperature average mode register. |
| cparata | 0:69566eea0fba | 249 | * \code |
| cparata | 0:69566eea0fba | 250 | * Read/write |
| cparata | 0:69566eea0fba | 251 | * Default value: 0x1B |
| cparata | 0:69566eea0fba | 252 | * 7:6 Reserved. |
| cparata | 0:69566eea0fba | 253 | * 5:3 AVGT2-AVGT1-AVGT0: Select the temperature internal average. |
| cparata | 0:69566eea0fba | 254 | * |
| cparata | 0:69566eea0fba | 255 | * AVGT2 | AVGT1 | AVGT0 | Nr. Internal Average |
| cparata | 0:69566eea0fba | 256 | * ---------------------------------------------------- |
| cparata | 0:69566eea0fba | 257 | * 0 | 0 | 0 | 2 |
| cparata | 0:69566eea0fba | 258 | * 0 | 0 | 1 | 4 |
| cparata | 0:69566eea0fba | 259 | * 0 | 1 | 0 | 8 |
| cparata | 0:69566eea0fba | 260 | * 0 | 1 | 1 | 16 |
| cparata | 0:69566eea0fba | 261 | * 1 | 0 | 0 | 32 |
| cparata | 0:69566eea0fba | 262 | * 1 | 0 | 1 | 64 |
| cparata | 0:69566eea0fba | 263 | * 1 | 1 | 0 | 128 |
| cparata | 0:69566eea0fba | 264 | * 1 | 1 | 1 | 256 |
| cparata | 0:69566eea0fba | 265 | * |
| cparata | 0:69566eea0fba | 266 | * 2:0 AVGH2-AVGH1-AVGH0: Select humidity internal average. |
| cparata | 0:69566eea0fba | 267 | * AVGH2 | AVGH1 | AVGH0 | Nr. Internal Average |
| cparata | 0:69566eea0fba | 268 | * ------------------------------------------------------ |
| cparata | 0:69566eea0fba | 269 | * 0 | 0 | 0 | 4 |
| cparata | 0:69566eea0fba | 270 | * 0 | 0 | 1 | 8 |
| cparata | 0:69566eea0fba | 271 | * 0 | 1 | 0 | 16 |
| cparata | 0:69566eea0fba | 272 | * 0 | 1 | 1 | 32 |
| cparata | 0:69566eea0fba | 273 | * 1 | 0 | 0 | 64 |
| cparata | 0:69566eea0fba | 274 | * 1 | 0 | 1 | 128 |
| cparata | 0:69566eea0fba | 275 | * 1 | 1 | 0 | 256 |
| cparata | 0:69566eea0fba | 276 | * 1 | 1 | 1 | 512 |
| cparata | 0:69566eea0fba | 277 | * |
| cparata | 0:69566eea0fba | 278 | * \endcode |
| cparata | 0:69566eea0fba | 279 | */ |
| cparata | 0:69566eea0fba | 280 | #define HTS221_AV_CONF_REG (uint8_t)0x10 |
| cparata | 0:69566eea0fba | 281 | |
| cparata | 0:69566eea0fba | 282 | #define HTS221_AVGT_BIT HTS221_BIT(3) |
| cparata | 0:69566eea0fba | 283 | #define HTS221_AVGH_BIT HTS221_BIT(0) |
| cparata | 0:69566eea0fba | 284 | |
| cparata | 0:69566eea0fba | 285 | #define HTS221_AVGH_MASK (uint8_t)0x07 |
| cparata | 0:69566eea0fba | 286 | #define HTS221_AVGT_MASK (uint8_t)0x38 |
| cparata | 0:69566eea0fba | 287 | |
| cparata | 0:69566eea0fba | 288 | /** |
| cparata | 0:69566eea0fba | 289 | * @brief Control register 1. |
| cparata | 0:69566eea0fba | 290 | * \code |
| cparata | 0:69566eea0fba | 291 | * Read/write |
| cparata | 0:69566eea0fba | 292 | * Default value: 0x00 |
| cparata | 0:69566eea0fba | 293 | * 7 PD: power down control. 0 - power down mode; 1 - active mode. |
| cparata | 0:69566eea0fba | 294 | * 6:3 Reserved. |
| cparata | 0:69566eea0fba | 295 | * 2 BDU: block data update. 0 - continuous update; 1 - output registers not updated until MSB and LSB reading. |
| cparata | 0:69566eea0fba | 296 | * 1:0 ODR1, ODR0: output data rate selection. |
| cparata | 0:69566eea0fba | 297 | * |
| cparata | 0:69566eea0fba | 298 | * ODR1 | ODR0 | Humidity output data-rate(Hz) | Pressure output data-rate(Hz) |
| cparata | 0:69566eea0fba | 299 | * ---------------------------------------------------------------------------------- |
| cparata | 0:69566eea0fba | 300 | * 0 | 0 | one shot | one shot |
| cparata | 0:69566eea0fba | 301 | * 0 | 1 | 1 | 1 |
| cparata | 0:69566eea0fba | 302 | * 1 | 0 | 7 | 7 |
| cparata | 0:69566eea0fba | 303 | * 1 | 1 | 12.5 | 12.5 |
| cparata | 0:69566eea0fba | 304 | * |
| cparata | 0:69566eea0fba | 305 | * \endcode |
| cparata | 0:69566eea0fba | 306 | */ |
| cparata | 0:69566eea0fba | 307 | #define HTS221_CTRL_REG1 (uint8_t)0x20 |
| cparata | 0:69566eea0fba | 308 | |
| cparata | 0:69566eea0fba | 309 | #define HTS221_PD_BIT HTS221_BIT(7) |
| cparata | 0:69566eea0fba | 310 | #define HTS221_BDU_BIT HTS221_BIT(2) |
| cparata | 0:69566eea0fba | 311 | #define HTS221_ODR_BIT HTS221_BIT(0) |
| cparata | 0:69566eea0fba | 312 | |
| cparata | 0:69566eea0fba | 313 | #define HTS221_PD_MASK (uint8_t)0x80 |
| cparata | 0:69566eea0fba | 314 | #define HTS221_BDU_MASK (uint8_t)0x04 |
| cparata | 0:69566eea0fba | 315 | #define HTS221_ODR_MASK (uint8_t)0x03 |
| cparata | 0:69566eea0fba | 316 | |
| cparata | 0:69566eea0fba | 317 | /** |
| cparata | 0:69566eea0fba | 318 | * @brief Control register 2. |
| cparata | 0:69566eea0fba | 319 | * \code |
| cparata | 0:69566eea0fba | 320 | * Read/write |
| cparata | 0:69566eea0fba | 321 | * Default value: 0x00 |
| cparata | 0:69566eea0fba | 322 | * 7 BOOT: Reboot memory content. 0: normal mode; 1: reboot memory content. Self-cleared upon completation. |
| cparata | 0:69566eea0fba | 323 | * 6:2 Reserved. |
| cparata | 0:69566eea0fba | 324 | * 1 HEATHER: 0: heater enable; 1: heater disable. |
| cparata | 0:69566eea0fba | 325 | * 0 ONE_SHOT: 0: waiting for start of conversion; 1: start for a new dataset. Self-cleared upon completation. |
| cparata | 0:69566eea0fba | 326 | * \endcode |
| cparata | 0:69566eea0fba | 327 | */ |
| cparata | 0:69566eea0fba | 328 | #define HTS221_CTRL_REG2 (uint8_t)0x21 |
| cparata | 0:69566eea0fba | 329 | |
| cparata | 0:69566eea0fba | 330 | #define HTS221_BOOT_BIT HTS221_BIT(7) |
| cparata | 0:69566eea0fba | 331 | #define HTS221_HEATHER_BIT HTS221_BIT(1) |
| cparata | 0:69566eea0fba | 332 | #define HTS221_ONESHOT_BIT HTS221_BIT(0) |
| cparata | 0:69566eea0fba | 333 | |
| cparata | 0:69566eea0fba | 334 | #define HTS221_BOOT_MASK (uint8_t)0x80 |
| cparata | 0:69566eea0fba | 335 | #define HTS221_HEATHER_MASK (uint8_t)0x02 |
| cparata | 0:69566eea0fba | 336 | #define HTS221_ONE_SHOT_MASK (uint8_t)0x01 |
| cparata | 0:69566eea0fba | 337 | |
| cparata | 0:69566eea0fba | 338 | /** |
| cparata | 0:69566eea0fba | 339 | * @brief Control register 3. |
| cparata | 0:69566eea0fba | 340 | * \code |
| cparata | 0:69566eea0fba | 341 | * Read/write |
| cparata | 0:69566eea0fba | 342 | * Default value: 0x00 |
| cparata | 0:69566eea0fba | 343 | * 7 DRDY_H_L: Interrupt edge. 0: active high, 1: active low. |
| cparata | 0:69566eea0fba | 344 | * 6 PP_OD: Push-Pull/OpenDrain selection on interrupt pads. 0: push-pull; 1: open drain. |
| cparata | 0:69566eea0fba | 345 | * 5:3 Reserved. |
| cparata | 0:69566eea0fba | 346 | * 2 DRDY: interrupt config. 0: disable, 1: enable. |
| cparata | 0:69566eea0fba | 347 | * \endcode |
| cparata | 0:69566eea0fba | 348 | */ |
| cparata | 0:69566eea0fba | 349 | #define HTS221_CTRL_REG3 (uint8_t)0x22 |
| cparata | 0:69566eea0fba | 350 | |
| cparata | 0:69566eea0fba | 351 | #define HTS221_DRDY_H_L_BIT HTS221_BIT(7) |
| cparata | 0:69566eea0fba | 352 | #define HTS221_PP_OD_BIT HTS221_BIT(6) |
| cparata | 0:69566eea0fba | 353 | #define HTS221_DRDY_BIT HTS221_BIT(2) |
| cparata | 0:69566eea0fba | 354 | |
| cparata | 0:69566eea0fba | 355 | #define HTS221_DRDY_H_L_MASK (uint8_t)0x80 |
| cparata | 0:69566eea0fba | 356 | #define HTS221_PP_OD_MASK (uint8_t)0x40 |
| cparata | 0:69566eea0fba | 357 | #define HTS221_DRDY_MASK (uint8_t)0x04 |
| cparata | 0:69566eea0fba | 358 | |
| cparata | 0:69566eea0fba | 359 | /** |
| cparata | 0:69566eea0fba | 360 | * @brief Status register. |
| cparata | 0:69566eea0fba | 361 | * \code |
| cparata | 0:69566eea0fba | 362 | * Read |
| cparata | 0:69566eea0fba | 363 | * Default value: 0x00 |
| cparata | 0:69566eea0fba | 364 | * 7:2 Reserved. |
| cparata | 0:69566eea0fba | 365 | * 1 H_DA: Humidity data available. 0: new data for humidity is not yet available; 1: new data for humidity is available. |
| cparata | 0:69566eea0fba | 366 | * 0 T_DA: Temperature data available. 0: new data for temperature is not yet available; 1: new data for temperature is available. |
| cparata | 0:69566eea0fba | 367 | * \endcode |
| cparata | 0:69566eea0fba | 368 | */ |
| cparata | 0:69566eea0fba | 369 | #define HTS221_STATUS_REG (uint8_t)0x27 |
| cparata | 0:69566eea0fba | 370 | |
| cparata | 0:69566eea0fba | 371 | #define HTS221_H_DA_BIT HTS221_BIT(1) |
| cparata | 0:69566eea0fba | 372 | #define HTS221_T_DA_BIT HTS221_BIT(0) |
| cparata | 0:69566eea0fba | 373 | |
| cparata | 0:69566eea0fba | 374 | #define HTS221_HDA_MASK (uint8_t)0x02 |
| cparata | 0:69566eea0fba | 375 | #define HTS221_TDA_MASK (uint8_t)0x01 |
| cparata | 0:69566eea0fba | 376 | |
| cparata | 0:69566eea0fba | 377 | /** |
| cparata | 0:69566eea0fba | 378 | * @brief Humidity data (LSB). |
| cparata | 0:69566eea0fba | 379 | * \code |
| cparata | 0:69566eea0fba | 380 | * Read |
| cparata | 0:69566eea0fba | 381 | * Default value: 0x00. |
| cparata | 0:69566eea0fba | 382 | * HOUT7 - HOUT0: Humidity data LSB (2's complement). |
| cparata | 0:69566eea0fba | 383 | * \endcode |
| cparata | 0:69566eea0fba | 384 | */ |
| cparata | 0:69566eea0fba | 385 | #define HTS221_HR_OUT_L_REG (uint8_t)0x28 |
| cparata | 0:69566eea0fba | 386 | |
| cparata | 0:69566eea0fba | 387 | /** |
| cparata | 0:69566eea0fba | 388 | * @brief Humidity data (MSB). |
| cparata | 0:69566eea0fba | 389 | * \code |
| cparata | 0:69566eea0fba | 390 | * Read |
| cparata | 0:69566eea0fba | 391 | * Default value: 0x00. |
| cparata | 0:69566eea0fba | 392 | * HOUT15 - HOUT8: Humidity data MSB (2's complement). |
| cparata | 0:69566eea0fba | 393 | * \endcode |
| cparata | 0:69566eea0fba | 394 | */ |
| cparata | 0:69566eea0fba | 395 | #define HTS221_HR_OUT_H_REG (uint8_t)0x29 |
| cparata | 0:69566eea0fba | 396 | |
| cparata | 0:69566eea0fba | 397 | |
| cparata | 0:69566eea0fba | 398 | /** |
| cparata | 0:69566eea0fba | 399 | * @brief Temperature data (LSB). |
| cparata | 0:69566eea0fba | 400 | * \code |
| cparata | 0:69566eea0fba | 401 | * Read |
| cparata | 0:69566eea0fba | 402 | * Default value: 0x00. |
| cparata | 0:69566eea0fba | 403 | * TOUT7 - TOUT0: temperature data LSB. |
| cparata | 0:69566eea0fba | 404 | * \endcode |
| cparata | 0:69566eea0fba | 405 | */ |
| cparata | 0:69566eea0fba | 406 | #define HTS221_TEMP_OUT_L_REG (uint8_t)0x2A |
| cparata | 0:69566eea0fba | 407 | |
| cparata | 0:69566eea0fba | 408 | /** |
| cparata | 0:69566eea0fba | 409 | * @brief Temperature data (MSB). |
| cparata | 0:69566eea0fba | 410 | * \code |
| cparata | 0:69566eea0fba | 411 | * Read |
| cparata | 0:69566eea0fba | 412 | * Default value: 0x00. |
| cparata | 0:69566eea0fba | 413 | * TOUT15 - TOUT8: temperature data MSB. |
| cparata | 0:69566eea0fba | 414 | * \endcode |
| cparata | 0:69566eea0fba | 415 | */ |
| cparata | 0:69566eea0fba | 416 | #define HTS221_TEMP_OUT_H_REG (uint8_t)0x2B |
| cparata | 0:69566eea0fba | 417 | |
| cparata | 0:69566eea0fba | 418 | /** |
| cparata | 0:69566eea0fba | 419 | * @brief Calibration registers. |
| cparata | 0:69566eea0fba | 420 | * \code |
| cparata | 0:69566eea0fba | 421 | * Read |
| cparata | 0:69566eea0fba | 422 | * \endcode |
| cparata | 0:69566eea0fba | 423 | */ |
| cparata | 0:69566eea0fba | 424 | #define HTS221_H0_RH_X2 (uint8_t)0x30 |
| cparata | 0:69566eea0fba | 425 | #define HTS221_H1_RH_X2 (uint8_t)0x31 |
| cparata | 0:69566eea0fba | 426 | #define HTS221_T0_DEGC_X8 (uint8_t)0x32 |
| cparata | 0:69566eea0fba | 427 | #define HTS221_T1_DEGC_X8 (uint8_t)0x33 |
| cparata | 0:69566eea0fba | 428 | #define HTS221_T0_T1_DEGC_H2 (uint8_t)0x35 |
| cparata | 0:69566eea0fba | 429 | #define HTS221_H0_T0_OUT_L (uint8_t)0x36 |
| cparata | 0:69566eea0fba | 430 | #define HTS221_H0_T0_OUT_H (uint8_t)0x37 |
| cparata | 0:69566eea0fba | 431 | #define HTS221_H1_T0_OUT_L (uint8_t)0x3A |
| cparata | 0:69566eea0fba | 432 | #define HTS221_H1_T0_OUT_H (uint8_t)0x3B |
| cparata | 0:69566eea0fba | 433 | #define HTS221_T0_OUT_L (uint8_t)0x3C |
| cparata | 0:69566eea0fba | 434 | #define HTS221_T0_OUT_H (uint8_t)0x3D |
| cparata | 0:69566eea0fba | 435 | #define HTS221_T1_OUT_L (uint8_t)0x3E |
| cparata | 0:69566eea0fba | 436 | #define HTS221_T1_OUT_H (uint8_t)0x3F |
| cparata | 0:69566eea0fba | 437 | |
| cparata | 0:69566eea0fba | 438 | |
| cparata | 0:69566eea0fba | 439 | /** |
| cparata | 0:69566eea0fba | 440 | * @} |
| cparata | 0:69566eea0fba | 441 | */ |
| cparata | 0:69566eea0fba | 442 | |
| cparata | 0:69566eea0fba | 443 | |
| cparata | 0:69566eea0fba | 444 | /** |
| cparata | 0:69566eea0fba | 445 | * @} |
| cparata | 0:69566eea0fba | 446 | */ |
| cparata | 0:69566eea0fba | 447 | |
| cparata | 0:69566eea0fba | 448 | |
| cparata | 0:69566eea0fba | 449 | /* Exported Functions -------------------------------------------------------------*/ |
| cparata | 0:69566eea0fba | 450 | /** @defgroup HTS221_Exported_Functions |
| cparata | 0:69566eea0fba | 451 | * @{ |
| cparata | 0:69566eea0fba | 452 | */ |
| cparata | 0:69566eea0fba | 453 | |
| cparata | 0:69566eea0fba | 454 | HTS221_Error_et HTS221_ReadReg( void *handle, uint8_t RegAddr, uint16_t NumByteToRead, uint8_t *Data ); |
| cparata | 0:69566eea0fba | 455 | HTS221_Error_et HTS221_WriteReg( void *handle, uint8_t RegAddr, uint16_t NumByteToWrite, uint8_t *Data ); |
| cparata | 0:69566eea0fba | 456 | |
| cparata | 0:69566eea0fba | 457 | HTS221_Error_et HTS221_Get_DriverVersion(HTS221_DriverVersion_st* version); |
| cparata | 0:69566eea0fba | 458 | HTS221_Error_et HTS221_Get_DeviceID(void *handle, uint8_t* deviceid); |
| cparata | 0:69566eea0fba | 459 | |
| cparata | 0:69566eea0fba | 460 | HTS221_Error_et HTS221_Set_InitConfig(void *handle, HTS221_Init_st* pxInit); |
| cparata | 0:69566eea0fba | 461 | HTS221_Error_et HTS221_Get_InitConfig(void *handle, HTS221_Init_st* pxInit); |
| cparata | 0:69566eea0fba | 462 | HTS221_Error_et HTS221_DeInit(void *handle); |
| cparata | 0:69566eea0fba | 463 | HTS221_Error_et HTS221_IsMeasurementCompleted(void *handle, HTS221_BitStatus_et* Is_Measurement_Completed); |
| cparata | 0:69566eea0fba | 464 | |
| cparata | 0:69566eea0fba | 465 | HTS221_Error_et HTS221_Get_Measurement(void *handle, uint16_t* humidity, int16_t* temperature); |
| cparata | 0:69566eea0fba | 466 | HTS221_Error_et HTS221_Get_RawMeasurement(void *handle, int16_t* humidity, int16_t* temperature); |
| cparata | 0:69566eea0fba | 467 | HTS221_Error_et HTS221_Get_Humidity(void *handle, uint16_t* value); |
| cparata | 0:69566eea0fba | 468 | HTS221_Error_et HTS221_Get_HumidityRaw(void *handle, int16_t* value); |
| cparata | 0:69566eea0fba | 469 | HTS221_Error_et HTS221_Get_TemperatureRaw(void *handle, int16_t* value); |
| cparata | 0:69566eea0fba | 470 | HTS221_Error_et HTS221_Get_Temperature(void *handle, int16_t* value); |
| cparata | 0:69566eea0fba | 471 | HTS221_Error_et HTS221_Get_DataStatus(void *handle, HTS221_BitStatus_et* humidity, HTS221_BitStatus_et* temperature); |
| cparata | 0:69566eea0fba | 472 | HTS221_Error_et HTS221_Activate(void *handle); |
| cparata | 0:69566eea0fba | 473 | HTS221_Error_et HTS221_DeActivate(void *handle); |
| cparata | 0:69566eea0fba | 474 | |
| cparata | 0:69566eea0fba | 475 | HTS221_Error_et HTS221_Set_AvgHT(void *handle, HTS221_Avgh_et avgh, HTS221_Avgt_et avgt); |
| cparata | 0:69566eea0fba | 476 | HTS221_Error_et HTS221_Set_AvgH(void *handle, HTS221_Avgh_et avgh); |
| cparata | 0:69566eea0fba | 477 | HTS221_Error_et HTS221_Set_AvgT(void *handle, HTS221_Avgt_et avgt); |
| cparata | 0:69566eea0fba | 478 | HTS221_Error_et HTS221_Get_AvgHT(void *handle, HTS221_Avgh_et* avgh, HTS221_Avgt_et* avgt); |
| cparata | 0:69566eea0fba | 479 | HTS221_Error_et HTS221_Set_BduMode(void *handle, HTS221_State_et status); |
| cparata | 0:69566eea0fba | 480 | HTS221_Error_et HTS221_Get_BduMode(void *handle, HTS221_State_et* status); |
| cparata | 0:69566eea0fba | 481 | HTS221_Error_et HTS221_Set_PowerDownMode(void *handle, HTS221_BitStatus_et status); |
| cparata | 0:69566eea0fba | 482 | HTS221_Error_et HTS221_Get_PowerDownMode(void *handle, HTS221_BitStatus_et* status); |
| cparata | 0:69566eea0fba | 483 | HTS221_Error_et HTS221_Set_Odr(void *handle, HTS221_Odr_et odr); |
| cparata | 0:69566eea0fba | 484 | HTS221_Error_et HTS221_Get_Odr(void *handle, HTS221_Odr_et* odr); |
| cparata | 0:69566eea0fba | 485 | HTS221_Error_et HTS221_MemoryBoot(void *handle); |
| cparata | 0:69566eea0fba | 486 | HTS221_Error_et HTS221_Set_HeaterState(void *handle, HTS221_State_et status); |
| cparata | 0:69566eea0fba | 487 | HTS221_Error_et HTS221_Get_HeaterState(void *handle, HTS221_State_et* status); |
| cparata | 0:69566eea0fba | 488 | HTS221_Error_et HTS221_StartOneShotMeasurement(void *handle); |
| cparata | 0:69566eea0fba | 489 | HTS221_Error_et HTS221_Set_IrqActiveLevel(void *handle, HTS221_DrdyLevel_et status); |
| cparata | 0:69566eea0fba | 490 | HTS221_Error_et HTS221_Get_IrqActiveLevel(void *handle, HTS221_DrdyLevel_et* status); |
| cparata | 0:69566eea0fba | 491 | HTS221_Error_et HTS221_Set_IrqOutputType(void *handle, HTS221_OutputType_et value); |
| cparata | 0:69566eea0fba | 492 | HTS221_Error_et HTS221_Get_IrqOutputType(void *handle, HTS221_OutputType_et* value); |
| cparata | 0:69566eea0fba | 493 | HTS221_Error_et HTS221_Set_IrqEnable(void *handle, HTS221_State_et status); |
| cparata | 0:69566eea0fba | 494 | HTS221_Error_et HTS221_Get_IrqEnable(void *handle, HTS221_State_et* status); |
| cparata | 0:69566eea0fba | 495 | |
| cparata | 0:69566eea0fba | 496 | /** |
| cparata | 0:69566eea0fba | 497 | * @} |
| cparata | 0:69566eea0fba | 498 | */ |
| cparata | 0:69566eea0fba | 499 | |
| cparata | 0:69566eea0fba | 500 | /** |
| cparata | 0:69566eea0fba | 501 | * @} |
| cparata | 0:69566eea0fba | 502 | */ |
| cparata | 0:69566eea0fba | 503 | |
| cparata | 0:69566eea0fba | 504 | /** |
| cparata | 0:69566eea0fba | 505 | * @} |
| cparata | 0:69566eea0fba | 506 | */ |
| cparata | 0:69566eea0fba | 507 | |
| cparata | 0:69566eea0fba | 508 | #ifdef __cplusplus |
| cparata | 0:69566eea0fba | 509 | } |
| cparata | 0:69566eea0fba | 510 | #endif |
| cparata | 0:69566eea0fba | 511 | |
| cparata | 0:69566eea0fba | 512 | #endif /* __HTS221_DRIVER__H */ |
| cparata | 0:69566eea0fba | 513 | |
| cparata | 0:69566eea0fba | 514 | /******************* (C) COPYRIGHT 2013 STMicroelectronics *****END OF FILE****/ |

X-NUCLEO-IKS01A2 Motion MEMS and Environmental Sensor