1 #ifndef __SWM320_I2C_H__
2 #define __SWM320_I2C_H__
3 
4 typedef struct {
5     uint8_t  Master;        //1 主机模式
6     uint8_t  Addr7b;        //1 7位地址     0 10位地址
7 
8     uint32_t MstClk;        //主机传输时钟频率
9     uint8_t  MstIEn;        //主机模式中断使能
10 
11     uint16_t SlvAddr;       //从机地址
12     uint8_t  SlvRxEndIEn;   //从机接收完成中断使能
13     uint8_t  SlvTxEndIEn;   //从机发送完成中断使能
14     uint8_t  SlvSTADetIEn;  //从机检测到起始中断使能
15     uint8_t  SlvSTODetIEn;  //从机检测到终止中断使能
16     uint8_t  SlvRdReqIEn;   //从机接收到读请求中断使能
17     uint8_t  SlvWrReqIEn;   //从机接收到写请求中断使能
18 } I2C_InitStructure;
19 
20 
21 void I2C_Init(I2C_TypeDef * I2Cx, I2C_InitStructure * initStruct);
22 
23 void I2C_Open(I2C_TypeDef * I2Cx);
24 void I2C_Close(I2C_TypeDef * I2Cx);
25 
26 uint8_t I2C_Start(I2C_TypeDef * I2Cx, uint8_t addr);
27 void I2C_Stop(I2C_TypeDef * I2Cx);
28 uint8_t I2C_Write(I2C_TypeDef * I2Cx, uint8_t data);
29 uint8_t I2C_Read(I2C_TypeDef * I2Cx, uint8_t ack);
30 
31 #endif //__SWM320_I2C_H__
32