STM32 HAL库 SPI DMA主从机通信,只运行一个SPI 比如SPI1 或SPI2 的时候一切正常,同时运行两个SPI 就会出错率大大增加。这是什么情况?
比如两片STM32板子,板1 SPI1与板2 SPI1连接,板1 SPI2与板2 SPI2连接,板1 SPI均配置为full duplex master,板2 SPI均配置为full duplex slave,均使用DMA方式。当单独只开某一路比如SPI1或SPI2时,通信正常没有问题;当同时开启两路SPI时,通信出错率大大增加。无论nss配置为soft方式还是hardware方式都是一样的效果。如果不同时开启主机的SPI,比如时刻1开启SPI1,等SPI1通信完成再开启SPI2,如此往复,这样也是可以的,但就是不能同时运行。不知何故? |