久芯网

STM32F103ZET6作为主机,采用SPI_DMA模式接收数据,将SPI速率从9MHz改成18MHz,不能接收数据?

avatar CandyChen1234 提问时间: 2023-08-26 08:20:29 / 未解决
我现在用STM32F103ZET6作为主机和外设通信,采用SPI_DMA模式接收数据,将SPI速率从9MHz改成18MHz,DMA就一直停在while( !DMA_GetFlagStatus(DMA1_FLAG_TC4))出不来,如果不用DMA模式接收数据,将SPI速率从9MHz改成18MHz是可以的,所以怀疑是用来DMA才导致现在的问题,不知是否还有其他的可能性,谢谢!

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

3个回答
  • avatar goyhuan
    回答时间: 2023-08-26 08:53:05

    什么设备要这么高的速率?你不是用传输完成中断吗?

  • avatar CandyChen1234
    回答时间: 2023-08-26 09:10:29
    goyhuan 发表于 2021-7-28 09:30
    什么设备要这么高的速率?你不是用传输完成中断吗?

    W5500通信,一款以太网芯片,没有用DMA传输完成中断,只是用while( !DMA_GetFlagStatus(DMA1_FLAG_TC4))来作为传输完成的标志,然后进行一些其他的操作

  • avatar butterflyspring
    回答时间: 2023-08-26 09:38:41

    建议调试检查一下DMA是否有结果,比如接收数据内容,接收数据个数等信息来判读DMA是否启动工作了。 通常容易忽略DMA配置内存增加模式这一项。 手册上有吧配置的程序介绍,一共6步,逐步对照或许比较容易发现问题

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