ST意法半导体
直播中

英雄孤寂

11年用户 1190经验值
私信 关注
[问答]

HAL_SAI_Receive_DMA 不工作如何解决?有什么建议吗?

我使用 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 设置正确。
有什么建议吗?


回帖(1)

徐静

2022-12-2 15:37:30
好的,Cube 没有为 DMA 启用时钟 - 所以没有 DMA 设置被传输到 DMA 寄存器......
举报

更多回帖

发帖
×
20
完善资料,
赚取积分