特殊指令:SPI通讯


Spi_Config:SPI通讯配置

SPI通讯配置指令用于设定SPI通讯参数(速率与时序)。

参数名称数据类型读写方向说明
EN能流输入当EN使能时,进行对通讯端口的配置;SPI通讯模块会比较设定值与当前值,只有在设定值发生变化时,才重新配置SPI硬件。
PortUSINT输入需要配置的SPI通讯端口。
BaudRateUDINT输入设定的位速率,单位为:bit/S。
FirstBit USINT 输入 高位先发送还是低位先发送
  • [0] FirstBit_MSB:先发送高位。
  • [1] FirstBit_LSB:先发送低位。
DataSize USINT 输入 发送数据的位宽
  • [0] DataSize_8bit:8位宽度。
  • [1] DataSize_16bit:16位宽度。
ClockPolarity USINT 输入 时钟线的极性
  • [0] ClockPolarity_Low:时钟线在空闲时保持低电平。
  • [1] ClockPolarity_High:时钟线在空闲时保持高电平。
ClockPhase USINT 输入 时钟线的相位
  • [0] ClockPhase_1Edge:在时钟线的第一个沿读取数据,第二个沿改变数据。
  • [1] ClockPhase_2Edge:在时钟线的第一个沿改变数据,第二个沿读取数据。

SPI通讯配置指令会遍历所有的硬件分频,使用误差最小的方式来实现需要设定的位速率。

Spi_Transfer:SPI数据传送

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

参数名称数据类型读写方向说明
EN能流输入当EN使能时,将通讯任务写入对应通讯端口的任务队列。如果任务已经在队列中,则只更新任务状态。
PortUSINT输入PI通讯端口。
TxUSINT输入发送数据存放的首地址。
RxUSINT输入接收数据存放的首地址。
LengthUINT输入传输数据的数量。
CsBIT输入通讯完成后,是否释放片选管脚CS。
DoneBIT输出0:通讯未完成;1:通讯完成或失败。
Error USINT 输出 通讯失败的原因:
  • [0] Err_None:无错误。
  • [1] Err_Port:通讯端口不存在。
  • [2] Err_TaskQueueFull:通讯任务队列满。
  • [3] Err_Parameter:参数错误。
  • [4] Err_Failed:传输数据时发生错误。