|
配置代码如下: // SPI2 DMA1: RX-STREAM_3,TX-STREAM_4 LL_DMA_ConfigAddresses(DMA1, LL_DMA_STREAM_3, (uint32_t)&(SPI2->DR), (uint32_t)AIData,LL_DMA_DIRECTION_PERIPH_TO_MEMORY); LL_DMA_SetDataLength(DMA1, LL_DMA_STREAM_3, 6); LL_DMA_EnableIT_TC(DMA1, LL_DMA_STREAM_3); LL_SPI_EnableDMAReq_RX(SPI2); LL_DMA_ConfigAddresses(DMA1, LL_DMA_STREAM_4, (uint32_t)AIData,LL_SPI_DMA_GetRegAddr(SPI2), LL_DMA_GetDataTransferDirection(DMA1, LL_DMA_STREAM_4)); LL_DMA_SetDataLength(DMA1, LL_DMA_STREAM_4, 6); LL_DMA_EnableIT_TC(DMA1, LL_DMA_STREAM_4); LL_SPI_EnableDMAReq_TX(SPI2); // SPI3 DMA1: RX-STREAM_0,TX-STREAM_5 LL_DMA_ConfigAddresses(DMA1, LL_DMA_STREAM_0, (uint32_t)&(SPI3->DR), (uint32_t)&AIData2[6],LL_DMA_DIRECTION_PERIPH_TO_MEMORY); LL_DMA_SetDataLength(DMA1, LL_DMA_STREAM_0, 6); LL_DMA_EnableIT_TC(DMA1, LL_DMA_STREAM_0); LL_SPI_EnableDMAReq_RX(SPI3); LL_DMA_ConfigAddresses(DMA1, LL_DMA_STREAM_5, (uint32_t)&AIData2[6],LL_SPI_DMA_GetRegAddr(SPI3), LL_DMA_GetDataTransferDirection(DMA1, LL_DMA_STREAM_5)); LL_DMA_SetDataLength(DMA1, LL_DMA_STREAM_5, 6); LL_DMA_EnableIT_TC(DMA1, LL_DMA_STREAM_5); LL_SPI_EnableDMAReq_TX(SPI3); 现象: 如果SPI2的配置代码在前,SPI2的DMA就工作正常(触发:LL_DMA_EnableStream(DMA1, LL_DMA_STREAM_3); LL_DMA_EnableStream(DMA1, LL_DMA_STREAM_4);),SPI3就不工作; 如果SPI3的配置代码在前,SPI3的DMA就工作正常(触发:LL_DMA_EnableStream(DMA1, LL_DMA_STREAM_0); LL_DMA_EnableStream(DMA1, LL_DMA_STREAM_5);),SPI2就不工作。 上面的配置代码,只配置1个SPI,SPI2或SPI3的DMA都工作正常。 看了手册,也没有找到原因,请高手指教!! |
程序卡死在USB_EPStartXfer这里
SDIO 初始化 死在 __HAL_RCC_SDIO_CLK_ENABLE语句上
我现在使用STM32F446ZET6芯片,外挂了16m的片外SDRAM。想把程序在SDRAM中运行,一直尝试没有成功,希望得到帮助,是否有相关的例子或参考的文档
MotorControl Workbench 6.4.1 生成 FOC 项目代码后运行死机。
STM32u575 USART 用GPDMA接收,DMA中断,usart 中断正常来,ROR数据正确,接收缓冲却不变
请教STM32F103的DMA空闲接收问题
stm32h7 定时器输出比较模式+dma,生成脉冲异常
3.3v单片机能刷写1.8v的spi flash吗?
STM32F405rgt6 I2S DMA输入会造成卡死,这个芯片有BUG
STM32H725VGT3内存不足问题
微信公众号
手机版
大概率会出现你说的情形。关于这点我这边也验证过了,如果每次DMA传输1个数据,我的测试结果是100%会出现你说的情形。
当然,即时保持不在中断里清标志位,随着传输数据量加大,就不容易出现你说的情况。这点不难理解,随着数据量的加多,就有更多时间来运行后续启动代码。
如果是这个原因导致的异常的话,应该说跟SPI的初始化先后顺序没关系的,严格地讲是跟使能哪个SPI DMA传输的顺序有关。
多个SPI的DMA传输为何仅1个有效?