打印
[AT32F403/403A]

AT32 I2C 2.0版新库使用分享(三)

[复制链接]
2166|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
void i2c_dma_end_transfer_set(i2c_type *i2c_x, confirm_state new_state)
功能:
指示当前传输是否是最后一笔数据
参数:
i2c_x已经介绍过,不在赘述
new_stateTRUE将要传输最后一笔数据,FALSE将要传输不是最后一笔数据
例子: i2c_dma_end_transfer_set(I2C1, TRUE);将要传输最后一笔数据

void i2c_dma_enable(i2c_type *i2c_x, confirm_state new_state)
功能:
DMA传输使能
参数:
i2c_x已经介绍过,不在赘述
new_stateTRUE使能DMA传输,FALSE关闭DMA传输
例子: i2c_dma_enable(I2C1, TRUE);DMA传输使能

void i2c_interrupt_enable(i2c_type *i2c_x, uint16_t source, confirm_state new_state)
功能:
I2C中断使能
参数:
i2c_x已经介绍过,不在赘述
source中断源选择
I2C_DATA_INT:数据传输中断
I2C_EV_INT:事件中断
I2C_ERR_INT:错误中断
new_stateTRUE对应中断使能,FALSE对应中断关闭
例子: i2c_interrupt_enable(I2C1, I2C_DATA_INT | I2C_EV_INT , TRUE);数据传输中断、事件中断使能

void i2c_start_generate(i2c_type *i2c_x)
功能:
产生起始条件(主机使用)
参数:
i2c_x已经介绍过,不在赘述
例子: i2c_start_generate(I2C1);在总线上产生起始条件

void i2c_stop_generate(i2c_type *i2c_x)
功能:
产生停止条件
参数:
i2c_x已经介绍过,不在赘述
例子: i2c_stop_generate(I2C1);在总线上产生停止条件

void i2c_7bit_address_send(i2c_type *i2c_x, uint8_t address, i2c_direction_type direction)
功能:
发送7位从机地址(主机使用)
参数:
i2c_x已经介绍过,不在赘述
Address待发送的7位从机地址
direction传输方向
I2C_DIRECTION_TRANSMIT主机发送数据
I2C_DIRECTION_RECEIVE主机接收数据
例子: i2c_7bit_address_send(I2C1, 0x68, I2C_DIRECTION_TRANSMIT);主机发送地址0x68,数据传输方向为主机发送数据

void i2c_data_send(i2c_type *i2c_x, uint8_t data)
功能:
发送数据
参数:
i2c_x已经介绍过,不在赘述
data待发送的数据
例子: i2c_data_send(I2C1, 0x21);发送数据0x21

uint8_t i2c_data_receive(i2c_type *i2c_x)
功能:
接收数据
参数:
i2c_x已经介绍过,不在赘述
return返回接收到的数据
例子:val = i2c_data_receive(I2C1);接收数据

flag_status i2c_flag_get(i2c_type *i2c_x, uint32_t flag)
功能:
获取标志状态
参数:
i2c_x已经介绍过,不在赘述
flag标志
I2C_STARTF_FLAG:起始条件产生完成标志
I2C_ADDR7F_FLAG:地址匹配标志
I2C_TDC_FLAG:数据传输完成标志
I2C_ADDRHF_FLAG:主机 9~8 位地址头匹配标志
I2C_STOPF_FLAG:主机 9~8 位地址头匹配标志
I2C_RDBF_FLAG:接收数据缓冲器满标志
I2C_TDBE_FLAG:发送缓冲器空标志
I2C_BUSERR_FLAG:总线错误标志
I2C_ARLOST_FLAG:仲裁丢失标志
I2C_ACKFAIL_FLAG:应答失败标志
I2C_OUF_FLAG:溢出标志
I2C_PECERR_FLAGPEC 接收错误标志
I2C_TMOUT_FLAGSMBus 超时标志
I2C_ALERTF_FLAGSMBus 提醒标志
I2C_TRMODE_FLAG:传输模式
I2C_BUSYF_FLAG:总线忙标志
I2C_DIRF_FLAG:传输方向标志
I2C_GCADDRF_FLAG:广播地址接收标志
I2C_DEVADDRF_FLAGSMBus 设备地址接收标志
I2C_HOSTADDRF_FLAGSMBus 主机地址接收标志(
I2C_ADDR2_FLAG:接收到地址 2 标志
例子:i2c_flag_get(I2C1, I2C_STARTF_FLAG);

void i2c_flag_clear(i2c_type *i2c_x, uint32_t flag)
功能:
清除标志状态
参数:
i2c_x已经介绍过,不在赘述
flag标志
I2C_BUSERR_FLAG:总线错误标志
I2C_ARLOST_FLAG:仲裁丢失标志
I2C_ACKFAIL_FLAG:应答失败标志
I2C_OUF_FLAG:溢出标志
I2C_PECERR_FLAGPEC 接收错误标志
I2C_TMOUT_FLAGSMBus 超时标志
I2C_ALERTF_FLAGSMBus 提醒标志
例子:i2c_flag_clear(I2C1, I2C_BUSERR_FLAG);清除bus error标志

使用特权

评论回复
沙发
onlycook| | 2021-12-5 22:17 | 只看该作者
这个分享有点棒

使用特权

评论回复
板凳
chenjun89| | 2021-12-6 07:44 | 只看该作者
不错,谢谢楼主分享。

使用特权

评论回复
地板
wangwu1976@| | 2023-4-6 13:57 | 只看该作者
谢谢分享

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

53

主题

126

帖子

1

粉丝