久芯网

STM32H743 SPI6+BDMA的问题

avatar fhsjzyf 提问时间: 2023-08-02 08:22:32 / 未解决

使用cubemx选择stm32h743iit的芯片,添加了SPI6并添加了DMA功能,但是发现在调用HAL_SPI_Transmit_DMA(&hspi6,(uint8_t*)SPI_SEND_BUFFER_ADDRESS,1);后,无法进入HAL_SPI_TxCpltCallback的回调函数中。请问这个应该怎么解决呢?


如需获得 STM32H743 等器件的更多信息,请点击链接或 点击此处 联系在线客服!

4个回答
  • avatar xmshao
    回答时间: 2023-08-02 08:45:14

    提醒你两点:第一,确认DMA的确配置好了,基于CubeMx配置的话,DMA配置代码放在SPI外设配置的前面;第二,确保你BDMA要访问的内存是它可以访问得到地方,否则它鞭长莫及就无法完成传输,这点你要对着手册确认。

  • avatar fhsjzyf
    回答时间: 2023-08-02 09:10:19
    xmshao 发表于 2022-4-12 10:49
    提醒你两点:第一,确认DMA的确配置好了,基于CubeMx配置的话,DMA配置代码放在SPI外设配置的前面;第二, ...

    谢谢!您提到的第二点我理解,已经把数据放在SDRAM4中,是BDMA可以访问的。您说的第一点,关于BDMA初始化的代码,关于中断的部分放在了SPI初始化之前,其他的包括数据通道的内容,放在了SPI的MspInit()函数中。这样子cubemx生成的程序算是正确的吗?

  • avatar xmshao
    回答时间: 2023-08-02 09:31:11
    fhsjzyf 发表于 2022-4-12 15:34
    谢谢!您提到的第二点我理解,已经把数据放在SDRAM4中,是BDMA可以访问的。您说的第一点,关于BDMA初 ...

    [md]我的第一点 主要提醒你DMA配置OK并开启了。这点你可以调试确认下。再就是看看有无对齐方面的原因。

  • avatar masterchao
    回答时间: 2023-08-02 09:50:57

    SPI6中断和DMA中断是否都已使能

会员中心 微信客服
客服
回到顶部