#include "stm32f1xx_hal.h" //若定义这个宏,使用硬件iic,否则使用软件iic, //#define HARD_IIC /*********************软件IIC使用的宏****************************/ #define Soft_I2C_SDA GPIO_PIN_7 #define Soft_I2C_SCL GPIO_PIN_6 #define Soft_I2C_PORT GPIOB // #define Soft_I2C_SCL_0 HAL_GPIO_WritePin(Soft_I2C_PORT, Soft_I2C_SCL, GPIO_PIN_RESET) #define Soft_I2C_SCL_1 HAL_GPIO_WritePin(Soft_I2C_PORT, Soft_I2C_SCL, GPIO_PIN_SET) #define Soft_I2C_SDA_0 HAL_GPIO_WritePin(Soft_I2C_PORT, Soft_I2C_SDA, GPIO_PIN_RESET) #define Soft_I2C_SDA_1 HAL_GPIO_WritePin(Soft_I2C_PORT, Soft_I2C_SDA, GPIO_PIN_SET) /**************************I2C参数定义,I2C1或I2C2********************************/ #define SENSORS_I2Cx I2C1 #define SENSORS_I2C_SCL_PORT GPIOB #define SENSORS_I2C_SCL_PIN GPIO_Pin_6 #define SENSORS_I2C_SDA_PORT GPIOB #define SENSORS_I2C_SDA_PIN GPIO_Pin_7 /*等待超时时间*/ #define I2CT_FLAG_TIMEOUT ((uint32_t)0x1000) #define I2CT_LONG_TIMEOUT ((uint32_t)(10 * I2CT_FLAG_TIMEOUT)) extern void I2C_Bus_Init(void); extern void Set_I2C_Retry(unsigned short ml_sec); extern unsigned short Get_I2C_Retry(void); 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); extern void Sensors_I2C_ReadRegister(uint8_t Address, uint8_t RegisterAddr, uint8_t RegisterLen, uint8_t *RegisterValue); extern void Sensors_I2C_WriteRegister(uint8_t Address, uint8_t RegisterAddr, uint8_t RegisterLen, uint8_t *RegisterValue);