那不如一直将SS线拉低,从
设备和
主设备就可以随时通信。即在两台设备之间进行SPI通信完全可以将SS接到地。本人遇到一个这样的问题:想让主设备向从设备发送6字节的
数据,主设备等待50us后,再发送时钟和使能SPISTE信号,从从设备那里读取数据。为什么要等待呢,因为主设备发送的指令要等从设备运算处理后才能返回,从设备没办法立即返回数据。因此我将从设备设置成FIFO模式,想等接收到6个字节后由FIFO产生中断,处理后在下一次主设备发送的时钟和使能信号时发送给主设备。结果从示波器上观察到从设备在接收到2个字节后就向主设备发送刚接收到的数据。而接收中断只有在刚运行程序检测到FIFO满才产生过中断,之后收发没有产生中断。cmd[0] = 0x9F;
if(HAL_SPI_Transmit(&hspi1,cmd,1,1000) == HAL_OK)
{
if(HAL_SPI_Receive(&hspi1,data,5,1000) == HAL_OK)
{
}
}
评论列表(0条)