RobotHardware-UESTC/Hardware/RobotSensor/Core/Inc/i2c.h

48 lines
1.2 KiB
C

#ifndef __i2c_H__
#define __i2c_H__
#ifdef __cplusplus
extern "C" {
#endif
#include "stm32f1xx_hal.h"
//imu-iic
#define SCL_H GPIOB->BSRR = GPIO_PIN_8
#define SCL_L GPIOB->BRR = GPIO_PIN_8
#define SDA_H GPIOB->BSRR = GPIO_PIN_9
#define SDA_L GPIOB->BRR = GPIO_PIN_9
#define SCL_read GPIOB->IDR & GPIO_PIN_8
#define SDA_read GPIOB->IDR & GPIO_PIN_9
//³¬Éù²¨-iic
#define HC_SCL_H GPIOB->BSRR = GPIO_PIN_1
#define HC_SCL_L GPIOB->BRR = GPIO_PIN_1
#define HC_SDA_H GPIOB->BSRR = GPIO_PIN_0
#define HC_SDA_L GPIOB->BRR = GPIO_PIN_0
#define HC_SCL_read GPIOB->IDR & GPIO_PIN_1
#define HC_SDA_read GPIOB->IDR & GPIO_PIN_0
/*********************************************************************************************************************/
void HC_I2C_Init(void);
void HC_I2C_Write(void);
int HC_I2C_Read(void);
void PB_I2C_Init(void);
int PB_I2C_Write_Byte(uint8_t addr, uint8_t reg, uint8_t data);
int PB_I2C_Write_Buf(uint8_t addr, uint8_t reg, uint8_t *data, uint8_t size);
int PB_I2C_Read_Byte(uint8_t addr, uint8_t reg, uint8_t* data);
int PB_I2C_Read_Buf(uint8_t addr,uint8_t reg, uint8_t* data, uint8_t size);
#ifdef __cplusplus
}
#endif
#endif //__i2c_H__