
最近使用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不是很了解。 |
STM32U575 SPI&GPDMA
L9663驱动开发
stn32h725vgh3芯片,配置使用外部时钟必须先下载内部时钟的代码,然后再下载外部时钟的代码才可以正常使用,断电后需要重新这个流程,直接下载HSE外部时钟,功能不能使用。
stm32h563 无法完全整片擦除
STM32H745IGT6 温湿度等级
STM32N6570-DK开发板,哪里还有卖的?
STM32H7R7 CubeMX无配置问题
用电器识别项目中nanoedgeAI频域训练及相位影响
SD卡初始化第一次初始化后再次初始化时会失败。
关于三轴陀螺仪 I3G4250D
使用EXTI0是可以作为SPI DMA传输的同步事件的。
估计是你配置上哪里不到位,这里有篇针对性应用实例,是本人经过验证的。
你可以参考下面文章,内容较多,你关注其中的基于EXTI同步SPI DMA传输的配置即可。
基于STM32G4芯片TIM+SPI+DMA应用示例
基于STM32G4芯片TIM+SPI+DMA应用示例
非常感谢你的回答,由于最近在忙别的事情,SPI部分临时使用中断内直接控制IO的方式实现读取。我也觉得是我配置上有错误,等后续有时间,再重新研究一下。