Files
CHJ/user/MCU/lhl_i2c_soft.h

46 lines
1.5 KiB
C
Raw Normal View History

2026-03-20 21:19:53 +08:00
#ifndef __SoftI2C_h__
#define __SoftI2C_h__
2026-03-20 21:16:58 +08:00
//IIC<49>˿ڶ<CBBF><DAB6><EFBFBD>
#ifndef HIGH
2026-03-20 21:19:53 +08:00
#define HIGH 1 // HIGH
#define LOW 0 // LOW
#endif
2026-03-20 21:16:58 +08:00
#ifndef WR
2026-03-20 21:19:53 +08:00
#define WR 0 // WRITE
#define RD 1 // READ
2026-03-20 21:16:58 +08:00
#endif
/*******************************************************************************/
2026-03-20 21:19:53 +08:00
#define SDA_IN() EnableInput(I2C_SDA_GPIO, I2C_SDA_PINPOS);EnablePullUp(I2C_SDA_GPIO,I2C_SDA_PINPOS) //<2F><><EFBFBD><EFBFBD><EBB2A2><EFBFBD><EFBFBD>
2026-03-20 21:16:58 +08:00
#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)
/*******************************************************************************/
2026-03-20 21:19:53 +08:00
//#define SDA_IN() {I2C_GPIO->MODER &=~(3<<(7*2)); I2C_GPIO->MODER |=0<<7*2;} //PA12<31><32><EFBFBD><EFBFBD>ģʽ
//#define SDA_OUT() {I2C_GPIO->MODER &=~(3<<(7*2)); I2C_GPIO->MODER |=1<<7*2;} //PA12<31><32><EFBFBD><EFBFBD>ģʽ
2026-03-20 21:16:58 +08:00
2026-03-20 21:19:53 +08:00
#define ENABLE_I2C_DELAY 0
#define SI2C_Delay() __NOP();
2026-03-20 21:19:04 +08:00
2026-03-20 21:19:53 +08:00
//void I2C_Delay(void);H
2026-03-20 21:16:58 +08:00
void SI2C_Init(void);
void SI2C_Start(void);
void SI2C_Stop(void);
void SI2C_Ack(void);
void SI2C_NoAck(void);
2026-03-20 21:19:53 +08:00
u8 SI2C_TestAck(void);
u8 SI2C_Write(u8 writeData);
u8 SI2C_Read(void);
2026-03-20 21:16:58 +08:00
#endif