接口函数
API | 芯片 | |
---|---|---|
GR551x | GR5526 | |
app_i2c_init |
Y |
Y |
app_i2c_deinit |
Y |
Y |
app_i2c_receive_sync |
Y |
Y |
app_i2c_receive_async |
Y |
Y |
app_i2c_transmit_sync |
Y |
Y |
app_i2c_transmit_async |
Y |
Y |
app_i2c_mem_read_sync |
Y |
Y |
app_i2c_mem_read_async |
Y |
Y |
app_i2c_mem_write_sync |
Y |
Y |
app_i2c_mem_write_async |
Y |
Y |
app_i2c_get_handle |
Y |
Y |
app_i2c_master_abort_it |
Y |
Y |
app_i2c_timing_adjust | Y | Y |
app_i2c_timing_get | Y | Y |
app_i2c_transmit_receive_sync | Y | N |
app_i2c_init
函数原型 |
uint16_t app_i2c_init(app_i2c_params_t *p_params, app_i2c_evt_handler_t evt_handler) |
---|---|
功能说明 |
初始化I2C |
输入参数 |
|
返回值 |
APP_DRV_xxx:详见SDK_Folder\drivers\inc\app_drv_error.h宏定义 |
备注 |
回调函数形式参照typedef void (*app_i2c_evt_handler_t)(app_i2c_evt_t *p_evt); HAL层已经实现中断标志位的清理,用户不用关心中断标志的清理,回调函数根据返回事件类型进行相应的处理即可。 |
app_i2c_deinit
函数原型 |
uint16_t app_i2c_deinit(app_i2c_id_t id) |
---|---|
功能说明 |
反初始化I2C |
输入参数 |
id:I2C模块ID |
返回值 |
APP_DRV_xxx:详见SDK_Folder\drivers\inc\app_drv_error.h宏定义 |
备注 |
app_i2c_receive_sync
函数原型 |
uint16_t app_i2c_receive_sync(app_i2c_id_t id, uint16_t target_address, uint8_t *p_data, uint16_t size, uint32_t timeout) |
---|---|
功能说明 |
I2C轮询方式(同步)接收数据 |
输入参数 |
|
返回值 |
APP_DRV_xxx:详见SDK_Folder\drivers\inc\app_drv_error.h宏定义 |
备注 |
app_i2c_receive_async
函数原型 |
uint16_t app_i2c_receive_async(app_i2c_id_t id, uint16_t target_address, uint8_t *p_data, uint16_t size) |
---|---|
功能说明 |
I2C中断方式(异步)接收数据 |
输入参数 |
|
返回值 |
APP_DRV_xxx:详见SDK_Folder\drivers\inc\app_drv_error.h宏定义 |
备注 |
app_i2c_transmit_sync
函数原型 |
uint16_t app_i2c_receive_sync(app_i2c_id_t id, uint16_t target_address, uint8_t *p_data, uint16_t size, uint32_t timeout) |
---|---|
功能说明 |
I2C轮询方式(同步)发送数据 |
输入参数 |
|
返回值 |
APP_DRV_xxx:详见SDK_Folder\drivers\inc\app_drv_error.h宏定义 |
备注 |
app_i2c_transmit_async
函数原型 |
uint16_t app_i2c_transmit_async(app_i2c_id_t id, uint16_t target_address, uint8_t *p_data, uint16_t size) |
---|---|
功能说明 |
I2C中断方式(异步)发送数据 |
输入参数 |
|
返回值 |
APP_DRV_xxx:详见SDK_Folder\drivers\inc\app_drv_error.h宏定义 |
备注 |
app_i2c_mem_read_sync
函数原型 |
uint16_t app_i2c_mem_read_sync(app_i2c_id_t id, uint16_t dev_address, uint16_t mem_address, uint16_t mem_addr_size, uint8_t *p_data, uint16_t size, uint32_t timeout) |
---|---|
功能说明 |
I2C轮询方式(同步)读取特定内存地址的数据 |
输入参数 |
|
返回值 |
APP_DRV_xxx:详见SDK_Folder\drivers\inc\app_drv_error.h宏定义 |
备注 |
app_i2c_mem_read_async
函数原型 |
uint16_t app_i2c_mem_read_async(app_i2c_id_t id, uint16_t dev_address, uint16_t mem_address, uint16_t mem_addr_size, uint8_t *p_data, uint16_t size) |
---|---|
功能说明 |
I2C中断方式(异步)读取特定内存地址的数据 |
输入参数 |
|
返回值 |
APP_DRV_xxx:详见SDK_Folder\drivers\inc\app_drv_error.h宏定义 |
备注 |
app_i2c_mem_write_sync
函数原型 |
uint16_t app_i2c_mem_write_sync(app_i2c_id_t id, uint16_t dev_address, uint16_t mem_address, uint16_t mem_addr_size, uint8_t *p_data, uint16_t size, uint32_t timeout); |
---|---|
功能说明 |
I2C轮询方式(同步)向特定内存地址写入数据 |
输入参数 |
|
返回值 |
APP_DRV_xxx:详见SDK_Folder\drivers\inc\app_drv_error.h宏定义 |
备注 |
app_i2c_mem_write_async
函数原型 |
uint16_t app_i2c_mem_write_async(app_i2c_id_t id, uint16_t dev_address, uint16_t mem_address, uint16_t mem_addr_size, uint8_t *p_data, uint16_t size); |
---|---|
功能说明 |
I2C中断方式向(异步)特定内存地址写入数据 |
输入参数 |
|
返回值 |
APP_DRV_xxx:详见SDK_Folder\drivers\inc\app_drv_error.h宏定义 |
备注 |
app_i2c_get_handle
函数原型 |
i2c_handle_t *app_i2c_get_handle(app_i2c_id_t id) |
---|---|
功能说明 |
获取I2C句柄 |
输入参数 |
id:I2C模块ID |
返回值 |
I2C句柄指针 |
备注 |
app_i2c_master_abort_it
函数原型 |
uint16_t app_i2c_master_abort_it(app_i2c_id_t id) |
---|---|
功能说明 |
I2C中止Master当前的传输(非阻塞模式) |
输入参数 |
id:I2C模块ID |
返回值 |
APP_DRV_xxx:详见SDK_Folder\drivers\inc\app_drv_error.h宏定义 |
备注 |
app_i2c_timing_adjust
函数原型 | uint16_t app_i2c_timing_adjust(app_i2c_id_t id, uint32_t timing_type, int32_t delta) |
---|---|
功能说明 | 对I2C时序进行微调,包括SCL高电平长度、低电平长度以及SDA保持时间 |
输入参数 |
|
返回值 | APP_DRV_xxx:详见SDK_Folder\drivers\inc\app_drv_error.h宏定义 |
备注 |
若SCL通信时钟周期长度等于4倍的I2C的工作时钟周期长度,当高电平的时序值等于1时,即1个工作时钟(sclk)周期,则高电平在时钟周期占比1/4;如不设置,则默认高低电平时间相同 由于上拉电阻以及电路走线差异,可能会导致I2C时序无法满足标准,导致通信出现异常,可通过此接口进行微调,入参delta为相对变化量,在初始化完成后调用此接口。I2C工作时钟在GR551x上等于系统时钟频率,在GR5526上等于串行时钟频率 |
app_i2c_timing_get
函数原型 | uint16_t app_i2c_timing_get(app_i2c_id_t id, uint32_t timing_type, uint32_t *p_timing_value) |
---|---|
功能说明 | 获取I2C的时序,包括SCL高电平长度、低电平长度以及SDA保持时间 |
输入参数 |
|
返回值 | APP_DRV_xxx:详见SDK_Folder\drivers\inc\app_drv_error.h宏定义 |
备注 |
app_i2c_transmit_receive_sync
函数原型 |
uint16_t app_i2c_transmit_receive_sync(app_i2c_id_t id, uint16_t dev_address, uint8_t *p_tdata, uint16_t tsize, uint8_t *p_rdata, uint16_t rsize, uint32_t timeout) |
---|---|
功能说明 |
I2C主机以Polling方式(同步)向特定内存地址写入数据后读取数据,中间没有停止位。 I2C从机以Polling方式(同步)接收数据后发送数据,中间没有检测停止位。 |
输入参数 |
|
返回值 | APP_DRV_xxx:详见SDK_Folder\drivers\inc\app_drv_error.h宏定义 |
备注 |