| 我现在用STM32F103ZET6作为主机和外设通信,采用SPI_DMA模式接收数据,将SPI速率从9MHz改成18MHz,DMA就一直停在while( !DMA_GetFlagStatus(DMA1_FLAG_TC4))出不来,如果不用DMA模式接收数据,将SPI速率从9MHz改成18MHz是可以的,所以怀疑是用来DMA才导致现在的问题,不知是否还有其他的可能性,谢谢! |
如需获得 STM32F103ZET6、18MHz 等器件的更多信息,请点击链接或 点击此处 联系在线客服!
什么设备要这么高的速率?你不是用传输完成中断吗?
什么设备要这么高的速率?你不是用传输完成中断吗?
和W5500通信,一款以太网芯片,没有用DMA传输完成中断,只是用while( !DMA_GetFlagStatus(DMA1_FLAG_TC4))来作为传输完成的标志,然后进行一些其他的操作
建议调试检查一下DMA是否有结果,比如接收数据内容,接收数据个数等信息来判读DMA是否启动工作了。 通常容易忽略DMA配置内存增加模式这一项。 手册上有吧配置的程序介绍,一共6步,逐步对照或许比较容易发现问题