最近使用STM32H743对外部一个ADC芯片做数据采集,想通过外部中断信号触发SPI DMA读取数据(每次3byte),但根据CubeMX配置的驱动无法触发SPI(无CLK时钟信号发出)。 工程也已经根据CubeMX生成的代码,增加了如下配置: pSyncConfig.SyncSignalID = HAL_DMAMUX1_SYNC_EXTI0; pSyncConfig.SyncPolarity = HAL_DMAMUX_SYNC_FALLING; pSyncConfig.SyncEnable = ENABLE; pSyncConfig.EventEnable = ENABLE; pSyncConfig.RequestNumber = 3; if (HAL_DMAEx_ConfigMuxSync(&hdma_spi5_rx, &pSyncConfig) != HAL_OK) { Error_Handler(); } 目前调试发现,外部PA0中断可以正常发生并进入中断入口, 单独使用HAL_SPI_TransmitReceive_DMA 或HAL_SPI_Receive_DMA也可以进行通信。 但EXTI0事件却无法触发同步SPI DMA传输,请问是否有大神知道,有哪些细节没有配置到位吗? 首次使用STM32H7,对DMAMUX不是很了解。 |
STM32H743对关键中断函数,使用ITCM搬至RAM运行,仿真进入HardFault_Handler报错
STM32H7打开DCache后,串口1DMA接受数据位空
STM32G0B1adc+dma采样数据错位
STM32 SPI从机用DMA方式实现全双工,数据传输过程中出错。
关于VN9D5D20F芯片的SPI 的信号脚SDO设计疑问
与HAL_ADC_Start_DMA相关的一个十分怪异的问题
双重ADC的DMA请求
L9663驱动开发
STM32的H5/U5系列处理器内置运放支持负压运算吗?比如输入-1V,放大倍数为2时输出-2V
PWM+DMA分多次发送缺点明显,会造成脉冲不连续,有解决的办法吗。
使用EXTI0是可以作为SPI DMA传输的同步事件的。
估计是你配置上哪里不到位,这里有篇针对性应用实例,是本人经过验证的。
你可以参考下面文章,内容较多,你关注其中的基于EXTI同步SPI DMA传输的配置即可。
基于STM32G4芯片TIM+SPI+DMA应用示例
基于STM32G4芯片TIM+SPI+DMA应用示例