62 lines
2.3 KiB
C
62 lines
2.3 KiB
C
/*******************************************************************************
|
|
@file i2c_slave.h
|
|
@brief i2c slave Configuration,API...
|
|
@version 1.0
|
|
|
|
SDK_LICENSE
|
|
|
|
*******************************************************************************/
|
|
|
|
#ifndef __I2C_SLAVE_H__
|
|
#define __I2C_SLAVE_H__
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
|
|
/*******************************************************************************
|
|
@ Module : Includes
|
|
@ Description : NULL
|
|
*******************************************************************************/
|
|
#include "types.h"
|
|
#include "i2c_common.h"
|
|
|
|
/*******************************************************************************
|
|
@ Module : I2C Slave Paramter structure
|
|
@ Description : None
|
|
*******************************************************************************/
|
|
typedef struct
|
|
{
|
|
// General
|
|
uint8_t id; // set
|
|
I2C_WorkMode workmode; // init some Para ,according to workmode
|
|
I2C_ADDRESS_e AddressMode;
|
|
uint8_t RX_FIFO_Len; // RX , TX FIFO SET
|
|
uint8_t Tx_FIFO_Len;
|
|
gpio_pin_e SDA_PIN; // I2C Pin
|
|
gpio_pin_e SCL_PIN;
|
|
uint32_t IRQ_Source;
|
|
uint8_t Slave_Address; // SAR,when as Slave
|
|
I2C_Hdl_t evt_handler;
|
|
} I2C_Slave_Parameter;
|
|
|
|
|
|
/*******************************************************************************
|
|
@ Module : Function Statement
|
|
@ Description : NULL
|
|
*******************************************************************************/
|
|
uint8_t Hal_I2C_Slave_Init(I2C_Slave_Parameter* para,uint8_t* handle);
|
|
uint8_t Hal_I2c_Slave_Open(uint8_t handle);
|
|
void Hal_I2c_Slave_Close(uint8_t handle);
|
|
uint8_t Hal_I2C_Slave_Deinit(uint8_t* handle);
|
|
uint8_t Hal_Check_I2C_Slave_Closed(uint8_t handle);
|
|
void Hal_I2C_Slave_ReadRX_FIFO(uint8_t handle,uint8_t* p,uint8_t len);
|
|
void Hal_I2C_Slave_CLR_IRQs(uint8_t handle,uint32_t irqs);
|
|
void Hal_I2C_Slave_WriteTX_FIFO(uint8_t handle,uint8_t* p,uint8_t len);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif
|