[AT32F403/403A] AT32 I2C 2.0版新库使用分享(二)

[复制链接]
747|1
手机看帖
扫描二维码
随时随地手机跟帖
骑着蜗牛狂奔O|  楼主 | 2021-11-21 12:27 | 显示全部楼层 |阅读模式
本帖最后由 骑着蜗牛狂奔O 于 2021-11-21 12:29 编辑

void i2c_master_receive_ack_set(i2c_type *i2c_x, i2c_master_ack_type pos)
功能:
在主机接收模式下,用于设置函数void i2c_ack_enable(i2c_type *i2c_x, confirm_state new_state)的生效位置。该函数的作用主要是为了在主机接收模式下,在接收两个字节时,能够正确的回复NACK
参数:
i2c_x已经介绍过,不在赘述
pos
I2C_MASTER_ACK_CURRENT:函数生效位置在当前接收的字节
I2C_MASTER_ACK_NEXT:函数生效位置在第二个接收的字节,在接收两个字节时使用
例子:i2c_master_receive_ack_set(I2C1, I2C_MASTER_ACK_CURRENT);表示函数i2c_ack_enable生效的位置在当前接收的字节

void i2c_pec_position_set(i2c_type *i2c_x, i2c_pec_position_type pos)
功能:
smbus模式并且在主机接收模式下,用于设置PEC的位置。该函数的作用主要是为了在主机接收模式下,在接收两个字节时,能够正确的接收PEC并回复NACK
参数:
i2c_x已经介绍过,不在赘述
pos
I2C_PEC_POSITION_CURRENT:当前接收字节为PEC
I2C_PEC_POSITION_NEXT :下一个接收字节为PEC,在接收两个字节时使用
例子:i2c_pec_position_set(I2C1, I2C_PEC_POSITION_CURRENT);表示当前接收字节为PEC

void i2c_general_call_enable(i2c_type *i2c_x, confirm_state new_state)
功能:
广播地址使能,当使能了后,会响应广播地址0x00000000
参数:
i2c_x已经介绍过,不在赘述
new_stateTRUE表示使能广播地址,FALSE表示不使能广播地址
例子:i2c_general_call_enable(I2C1, TRUE);表示使能广播地址,会响应地址0x00000000

void i2c_arp_mode_enable(i2c_type *i2c_x, confirm_state new_state)
功能:
SMBus ARP地址使能,当使能了后,如果是SMBus 主机:响应主机地址 0001000x如果是SMBus 设备:响应设备默认地址 0001100x,有关ARP协议的使用请参考SMBUS协议
参数:
i2c_x已经介绍过,不在赘述
new_stateTRUE表示使能 ARP地址,FALSE表示不使能 ARP地址
例子:i2c_arp_mode_enable(I2C1, TRUE);表示使能 ARP模式,会响应ARP地址

void i2c_smbus_mode_set(i2c_type *i2c_x, i2c_smbus_mode_set_type mode)
功能:
选择SMBus模式,可以选择SMBus主机或者SMBus设备
参数:
i2c_x已经介绍过,不在赘述
mode
I2C_SMBUS_MODE_DEVICESMBus设备
I2C_SMBUS_MODE_HOST SMBus主机
例子:i2c_smbus_mode_set(I2C1, I2C_SMBUS_MODE_HOST);表示将外设配置成SMBus主机

void i2c_smbus_alert_set(i2c_type *i2c_x, i2c_smbus_alert_set_type level)
功能:
SMBus提醒引脚电平设置,可以将提醒引脚设置成高电平或低电平
参数:
i2c_x已经介绍过,不在赘述
level
I2C_SMBUS_ALERT_HIGH:设置提醒引脚为高
I2C_SMBUS_ALERT_LOW:设置提醒引脚为低
例子:i2c_smbus_alert_set(I2C1, I2C_SMBUS_ALERT_LOW);将提醒引脚拉低

void i2c_pec_transmit_enable(i2c_type *i2c_x, confirm_state new_state)
功能:
发送/接收PEC,当调用此函数后,PEC将会被立即发送或接收
参数:
i2c_x已经介绍过,不在赘述
new_stateTRUE表示发送/接收PECFALSE无作用
例子: i2c_pec_transmit_enable(I2C1, TRUE)将会被立即发送或接收

void i2c_pec_calculate_enable(i2c_type *i2c_x, confirm_state new_state)
功能:
使能PEC计算
参数:
i2c_x已经介绍过,不在赘述
new_stateTRUE表示使能PEC计算,FALSE表示关闭PEC计算
例子:i2c_pec_calculate_enable(I2C1, TRUE);使能PEC计算

uint8_t i2c_pec_value_get(i2c_type *i2c_x)
功能:
获取当前PEC
参数:
i2c_x已经介绍过,不在赘述
例子:i2c_pec_value_get(I2C1);获取当前PEC

使用特权

评论回复
james03| | 2021-11-21 13:04 | 显示全部楼层
多谢楼主分享

使用特权

评论回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则