你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

关于外部事件(EXTI0)触发SPI读取数据

[复制链接]
ZhangYS 提问时间:2025-1-16 18:13 / 未解决

最近使用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不是很了解。

收藏 评论2 发布时间:2025-1-16 18:13

举报

2个回答
xmshao 回答时间:2025-1-17 17:21:02
我查看了手册,也用CubeMx基于STM32H7芯片简单配置了下。


使用EXTI0是可以作为SPI DMA传输的同步事件的。


估计是你配置上哪里不到位,这里有篇针对性应用实例,是本人经过验证的。


你可以参考下面文章,内容较多,你关注其中的基于EXTI同步SPI DMA传输的配置即可。


基于STM32G4芯片TIM+SPI+DMA应用示例
基于STM32G4芯片TIM+SPI+DMA应用示例
ZhangYS 回答时间:2025-1-21 15:32:08

xmshao 发表于 2025-1-17 17:21
我查看了手册,也用CubeMx基于STM32H7芯片简单配置了下。</p>
<p>

非常感谢你的回答,由于最近在忙别的事情,SPI部分临时使用中断内直接控制IO的方式实现读取。我也觉得是我配置上有错误,等后续有时间,再重新研究一下。

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版