ICM20600_i2c.h 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. #include "stm32f1xx_hal.h"
  2. //若定义这个宏,使用硬件iic,否则使用软件iic,
  3. //#define HARD_IIC
  4. /*********************软件IIC使用的宏****************************/
  5. #define Soft_I2C_SDA GPIO_PIN_7
  6. #define Soft_I2C_SCL GPIO_PIN_6
  7. #define Soft_I2C_PORT GPIOB
  8. //
  9. #define Soft_I2C_SCL_0 HAL_GPIO_WritePin(Soft_I2C_PORT, Soft_I2C_SCL, GPIO_PIN_RESET)
  10. #define Soft_I2C_SCL_1 HAL_GPIO_WritePin(Soft_I2C_PORT, Soft_I2C_SCL, GPIO_PIN_SET)
  11. #define Soft_I2C_SDA_0 HAL_GPIO_WritePin(Soft_I2C_PORT, Soft_I2C_SDA, GPIO_PIN_RESET)
  12. #define Soft_I2C_SDA_1 HAL_GPIO_WritePin(Soft_I2C_PORT, Soft_I2C_SDA, GPIO_PIN_SET)
  13. /**************************I2C参数定义,I2C1或I2C2********************************/
  14. #define SENSORS_I2Cx I2C1
  15. #define SENSORS_I2C_SCL_PORT GPIOB
  16. #define SENSORS_I2C_SCL_PIN GPIO_Pin_6
  17. #define SENSORS_I2C_SDA_PORT GPIOB
  18. #define SENSORS_I2C_SDA_PIN GPIO_Pin_7
  19. /*等待超时时间*/
  20. #define I2CT_FLAG_TIMEOUT ((uint32_t)0x1000)
  21. #define I2CT_LONG_TIMEOUT ((uint32_t)(10 * I2CT_FLAG_TIMEOUT))
  22. extern void I2C_Bus_Init(void);
  23. extern void Set_I2C_Retry(unsigned short ml_sec);
  24. extern unsigned short Get_I2C_Retry(void);
  25. extern uint8_t Soft_DMP_I2C_Read(uint8_t soft_dev_addr, uint8_t soft_reg_addr, uint8_t soft_i2c_len,uint8_t *soft_i2c_data_buf);
  26. extern void Sensors_I2C_ReadRegister(uint8_t Address, uint8_t RegisterAddr,
  27. uint8_t RegisterLen, uint8_t *RegisterValue);
  28. extern void Sensors_I2C_WriteRegister(uint8_t Address, uint8_t RegisterAddr,
  29. uint8_t RegisterLen, uint8_t *RegisterValue);