rt-thread-official/bsp/swm320-lq100/Libraries/SWM320_StdPeriph_Driver/SWM320_i2c.h

32 lines
1.0 KiB
C
Raw Normal View History

2018-12-24 17:17:27 +08:00
#ifndef __SWM320_I2C_H__
#define __SWM320_I2C_H__
typedef struct
{
2021-09-30 17:55:16 +08:00
uint8_t Master; //1 主机模式
uint8_t Addr7b; //1 7位地址 0 10位地址
2018-12-24 17:17:27 +08:00
2021-09-30 17:55:16 +08:00
uint32_t MstClk; //主机传输时钟频率
uint8_t MstIEn; //主机模式中断使能
2018-12-24 17:17:27 +08:00
2021-09-30 17:55:16 +08:00
uint16_t SlvAddr; //从机地址
uint8_t SlvRxEndIEn; //从机接收完成中断使能
uint8_t SlvTxEndIEn; //从机发送完成中断使能
uint8_t SlvSTADetIEn; //从机检测到起始中断使能
uint8_t SlvSTODetIEn; //从机检测到终止中断使能
uint8_t SlvRdReqIEn; //从机接收到读请求中断使能
uint8_t SlvWrReqIEn; //从机接收到写请求中断使能
2018-12-24 17:17:27 +08:00
} I2C_InitStructure;
void I2C_Init(I2C_TypeDef *I2Cx, I2C_InitStructure *initStruct);
void I2C_Open(I2C_TypeDef *I2Cx);
void I2C_Close(I2C_TypeDef *I2Cx);
2021-09-30 17:55:16 +08:00
uint8_t I2C_Start(I2C_TypeDef *I2Cx, uint8_t addr);
void I2C_Stop(I2C_TypeDef *I2Cx);
uint8_t I2C_Write(I2C_TypeDef *I2Cx, uint8_t data);
uint8_t I2C_Read(I2C_TypeDef *I2Cx, uint8_t ack);
2018-12-24 17:17:27 +08:00
#endif //__SWM320_I2C_H__