
最近使用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不是很了解。 |
关于三轴陀螺仪 I3G4250D
有提供 stm32h747 系列的 驱动 ek79007 mipi 的例程吗 ?
STM32N6570-DK开发板,哪里还有卖的?
定时器使用DMA突发传输功能时,传入指针从常量数组改为变量数组后,传输功能异常。测试官方用例一样,是何原因?
型号替代-STM32H5
正点原子阿波罗H743使用DMA2D后普通刷出现问题
STM32H7系列RMII用于TCP/IP 服务器
STM32U3 IIC通信后,SPI+GPDMA 进入循环发送,DMA无法使能 寄存器USEF=1
分享一个PWM+DMA的BUG
STM32G070CBT6使用硬件SPI无法读出W25Q128的ID
使用EXTI0是可以作为SPI DMA传输的同步事件的。
估计是你配置上哪里不到位,这里有篇针对性应用实例,是本人经过验证的。
你可以参考下面文章,内容较多,你关注其中的基于EXTI同步SPI DMA传输的配置即可。
基于STM32G4芯片TIM+SPI+DMA应用示例
基于STM32G4芯片TIM+SPI+DMA应用示例
非常感谢你的回答,由于最近在忙别的事情,SPI部分临时使用中断内直接控制IO的方式实现读取。我也觉得是我配置上有错误,等后续有时间,再重新研究一下。