我正在使用 CubeMX 生成的库对
STM32H743 MCU 进行编码。
我有 1 个 SPI 主机和 1 个从机。两者均配置为具有 Tx 和 Rx 两条线的完整 SPI。
Master 正在调用阻塞 HAL_SPI_Transmit() 或 HAL_SPI_Receive() 但绝不会同时调用 HAL_SPI_TransmitReceive() 。然而,库会将任何调用转换为 HAL_SPI_TransmitReceive()。从站配置为非阻塞 IT 模式以捕获任何方向的传输。
这是否意味着来自 Master 的单向事务将始终同时触发 Slave 的回调 HAL_SPI_TxCpltCallback() 和 HAL_SPI_RxCpltCallback() ?
换句话说,如果 Master 只发送,那么 Slave 不仅会收到它,还会通过移位环路完成将相同的回传给 Master?那么两个 catchup Callbacks 都是在 Slave 中触发的吗?这意味着 Slave 端无法区分 Master 的 Transmit-only 命令和 Master 的 TransmitReceive 命令?
我错过了什么吗?