特殊指令:I2C通讯


Spi_Config:I2C通讯配置

I2C通讯配置指令用于设定I2C通讯参数(速率与占空比)。

参数名称数据类型读写方向说明
EN能流输入当EN使能时,进行对通讯端口的配置;I2C通讯模块会比较设定值与当前值,只有在设定值发生变化时,才重新配置I2C硬件。
PortUSINT输入需要配置的I2C通讯端口。
ClockSpeedUDINT输入设定的位速率,单位为:bit/S。
DutyCycle USINT 输入 占空比为
  • [0] DutyCycle_1_1:占空比为1:1。
  • [1] DutyCycle_1_2:占空比为1:2。
  • [2] DutyCycle_9_16:占空比为9:16。

I2c_Write:I2C写数据

I2C写数据指令将I2C通讯任务写入对应通讯端口的任务队列。如果任务已经在队列中,则只更新任务状态。

参数名称数据类型读写方向说明
EN能流输入当EN使能时,将通讯任务写入对应通讯端口的任务队列。如果任务已经在队列中,则只更新任务状态。
PortUSINT输入I2C通讯端口。
SlvAddrUSINT输入芯片地址。
TxUSINT输入写数据存放的首地址。
LengthUINT输入写数据的数量。
StopBIT输入通讯完成后,是否发送STOP信号,结束通讯(后续没有通讯任务)。
DoneBIT输出0:通讯未完成;1:通讯完成或失败。
Error USINT 输出 通讯失败的原因:
  • [0] Err_None:无错误。
  • [1] Err_Port:通讯端口不存在。
  • [2] Err_QueueIsFull:通讯任务队列满。
  • [3] Err_Failed:写数据时发生错误。

I2c_Write:I2C读数据

I2C读数据指令将I2C通讯任务写入对应通讯端口的任务队列。如果任务已经在队列中,则只更新任务状态。

参数名称数据类型读读方向说明
EN能流输入当EN使能时,将通讯任务写入对应通讯端口的任务队列。如果任务已经在队列中,则只更新任务状态。
PortUSINT输入I2C通讯端口。
SlvAddrUSINT输入芯片地址。
RxUSINT输入读数据存放的首地址。
LengthUINT输入读数据的数量。
StopBIT输入通讯完成后,是否发送STOP信号,结束通讯(后续没有通讯任务)。
DoneBIT输出0:通讯未完成;1:通讯完成或失败。
Error USINT 输出 通讯失败的原因:
  • [0] Err_None:无错误。
  • [1] Err_Port:通讯端口不存在。
  • [2] Err_QueueIsFull:通讯任务队列满。
  • [3] Err_Failed:读数据时发生错误。