Files
CHJ/user/MCU/lhl_i2c_soft.h
2026-03-20 21:19:53 +08:00

46 lines
1.5 KiB
C

#ifndef __SoftI2C_h__
#define __SoftI2C_h__
//IIC端口定义
#ifndef HIGH
#define HIGH 1 // HIGH
#define LOW 0 // LOW
#endif
#ifndef WR
#define WR 0 // WRITE
#define RD 1 // READ
#endif
/*******************************************************************************/
#define SDA_IN() EnableInput(I2C_SDA_GPIO, I2C_SDA_PINPOS);EnablePullUp(I2C_SDA_GPIO,I2C_SDA_PINPOS) //输入并下拉
#define SDA_OUT() EnableOutput(I2C_SDA_GPIO, I2C_SDA_PINPOS)
#define SET_SDA() SET_PIN(I2C_SDA_GPIO, I2C_SDA)
#define CLR_SDA() CLR_PIN(I2C_SDA_GPIO, I2C_SDA)
#define READ_SDA() READ_PIN(I2C_SDA_GPIO, I2C_SDA)
#define SCL_OUT() EnableOutput(I2C_SCL_GPIO, I2C_SCL_PINPOS)
#define SET_SCL() SET_PIN(I2C_SCL_GPIO, I2C_SCL)
#define CLR_SCL() CLR_PIN(I2C_SCL_GPIO, I2C_SCL)
/*******************************************************************************/
//#define SDA_IN() {I2C_GPIO->MODER &=~(3<<(7*2)); I2C_GPIO->MODER |=0<<7*2;} //PA12输入模式
//#define SDA_OUT() {I2C_GPIO->MODER &=~(3<<(7*2)); I2C_GPIO->MODER |=1<<7*2;} //PA12输出模式
#define ENABLE_I2C_DELAY 0
#define SI2C_Delay() __NOP();
//void I2C_Delay(void);H
void SI2C_Init(void);
void SI2C_Start(void);
void SI2C_Stop(void);
void SI2C_Ack(void);
void SI2C_NoAck(void);
u8 SI2C_TestAck(void);
u8 SI2C_Write(u8 writeData);
u8 SI2C_Read(void);
#endif