我使用 SAI 接口读取数据:32 位插槽中的 8 个 -> 256 字节
这个工作正常:
- uint32_t GlSAI_DMA_Buff[8];
- ....
- HAL_SAI_Receive(&hsai_BlockB3,(uint8_t *) GlSAI_DMA_Buff, 8, 0xffffff);
当我这样使用 DMA 时:
- HAL_SAI_Receive_DMA(&hsai_BlockB3,(uint8_t *) GlSAI_DMA_Buff, 8);
它只收到 1 个字节:
然后只有 GlSAI_DMA_Buff[0] 等于 0x52 - 但应该有类似 0x5260A246 的东西,在其他地方也是零......
当我尝试另一个 DMA for
mem to mem(在 GlSAI_DMA_Buff 上)时它工作正常 - 所以可能我用于禁用缓存的 MPU 设置正确。
有什么建议吗?