TMP75AIDGKR.h 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. /*
  2. * TMP75AIDGKR.h
  3. *
  4. * Created on: 2019. 5. 27.
  5. * Author: parkyj
  6. */
  7. #ifndef TMP75AIDGKR_H_
  8. #define TMP75AIDGKR_H_
  9. #include "main.h"
  10. /** Register addresses */
  11. #define TMP75_RTEMP 0x00 /// Temperature register
  12. #define TMP75_RCONF 0x01 /// Configuration register
  13. #define TMP75_RTEMPL 0x02 /// TLOW register
  14. #define TMP75_RTEMPH 0x03 /// THIGH register
  15. #define TMP75_RESOLUTION_9BITS 0
  16. #define TMP75_RESOLUTION_10BITS 1
  17. #define TMP75_RESOLUTION_11BITS 2
  18. #define TMP75_RESOLUTION_12BITS 3
  19. /** \brief Structure of Configuration register in TMP75
  20. */
  21. typedef union
  22. {
  23. struct
  24. {
  25. uint8_t SD :1; /*!< bit: 0 Shutdown Mode */
  26. uint8_t TM :1; /*!< bit: 1 Thermostat Mode */
  27. uint8_t POL :1; /*!< bit: 2 Polarity */
  28. uint8_t F :2; /*!< bit: 3...4 Fault Queue */
  29. uint8_t R :2; /*!< bit: 5...6 Converter Resolution */
  30. uint8_t OS :1; /*!< bit: 7 One-Shot */
  31. } b;
  32. uint8_t r;
  33. } Tmp75_regconf_t;
  34. typedef enum
  35. {
  36. Tmp75Addr_Zero,
  37. Tmp75Addr_One,
  38. Tmp75Addr_Float
  39. } Tmp75_AddressLine_t;
  40. /*!
  41. * \brief Convert address line state to slave address
  42. *
  43. * \retval slave address or 0xff if address line state combination is invalid
  44. */
  45. uint8_t Tmp75_SlaveAddress(Tmp75_AddressLine_t a2, Tmp75_AddressLine_t a1, Tmp75_AddressLine_t a0);
  46. HAL_StatusTypeDef Tmp75_Init(I2C_HandleTypeDef *hi2c, uint8_t adr,
  47. Tmp75_regconf_t cfg);
  48. HAL_StatusTypeDef Tmp75_Read_TempCelsius(I2C_HandleTypeDef *hi2c, uint8_t adr,
  49. float* receive_buffer);
  50. HAL_StatusTypeDef Tmp75_Read_TempEeprom(I2C_HandleTypeDef *hi2c, uint8_t adr,
  51. uint16_t* receive_buffer);
  52. HAL_StatusTypeDef Tmp75_One_ShotTemp(I2C_HandleTypeDef *hi2c, uint8_t adr);
  53. HAL_StatusTypeDef Tmp75_Read_Teperature(I2C_HandleTypeDef *hi2c, uint8_t adr,
  54. float* temperature);
  55. HAL_StatusTypeDef Tmp75_Read_Int_Teperature(I2C_HandleTypeDef *hi2c, uint8_t tmp75addr,
  56. int32_t* temperature) ;
  57. #endif /* TMP75AIDGKR_H_ */