33 lines
935 B
C
33 lines
935 B
C
#ifndef __I2C_USER_H
|
|
#define __I2C_USER_H
|
|
|
|
#include "main.h"
|
|
|
|
#define SDA_IN() {GPIOB->MODER&=~(3<<(7*2));GPIOB->MODER|=0<<7*2;}
|
|
#define SDA_OUT() {GPIOB->MODER&=~(3<<(7*2));GPIOB->MODER|=1<<7*2;}
|
|
|
|
#define Read_I2C_SDA() ((GPIOB->IDR&I2C_SDA_Pin)!=0)?1:0
|
|
|
|
#define I2C_SDA_HIGH() LL_GPIO_SetOutputPin(I2C_SDA_GPIO_Port,I2C_SDA_Pin)
|
|
#define I2C_SDA_LOW() LL_GPIO_ResetOutputPin(I2C_SDA_GPIO_Port,I2C_SDA_Pin)
|
|
|
|
#define I2C_SCL_HIGH() LL_GPIO_SetOutputPin(I2C_SCL_GPIO_Port,I2C_SCL_Pin)
|
|
#define I2C_SCL_LOW() LL_GPIO_ResetOutputPin(I2C_SCL_GPIO_Port,I2C_SCL_Pin)
|
|
|
|
#define I2C_ACK 0 //应答
|
|
#define I2C_NOACK 1 //非应答
|
|
|
|
|
|
void uDelay(uint32_t cnt);
|
|
void I2C_Start(void);
|
|
void I2C_Stop(void);
|
|
void I2C_PutAck(uint8_t Ack);
|
|
uint8_t I2C_GetAck(void);
|
|
void I2C_WriteByte(uint8_t Data);
|
|
void I2C_WriteByte7(uint8_t Data);
|
|
uint8_t I2C_ReadByte(uint8_t ack);
|
|
|
|
|
|
|
|
#endif /* __I2C_USER_H */
|