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

STM32H7的双缓冲

[复制链接]
Xa__ 提问时间:2026-4-28 15:20 / 未解决
HAL_DMAEx_MultiBufferStart_IT(
huart1.hdmatx,
(uint32_t)read_test1,
(uint32_t)&huart1.Instance->TDR,
(uint32_t)read_test2,
NAND_PAGE_SIZE);
__HAL_UART_ENABLE_IT(&huart1,UART_IT_TC);
SET_BIT(huart1.Instance -> CR3,USART_CR3_DMAT);

采用这个函数,现在一直重复发送数据,停止不下来

收藏 评论5 发布时间:2026-4-28 15:20

举报

5个回答
butterflyspring 回答时间:2026-4-28 16:09:11
这里有个大佬分享的经验,可以参照着做一下。


基于STM32H7 DMA 双缓冲实现SPI逐个数据输出
xmshao 回答时间:2026-4-28 16:46:56

如果使用DMA双缓冲模式,就是循环发送。

停下来的话 可以基于完成中断手动停下来。

Xa__ 回答时间:2026-4-28 16:49:34

xmshao 发表于 2026-4-28 16:46
如果使用DMA双缓冲模式,就是循环发送。</p>
<p>停下来的话 可以基于完成中断手动停下来。

[md]现在就是中断进不去了,一直在循环发送,所以请教一下看谁有实例,参考一下

背影101 回答时间:2026-4-28 20:39:35

butterflyspring 发表于 2026-4-28 16:09
这里有个大佬分享的经验,可以参照着做一下。</p>
<p>

也来学习学习

xmshao 回答时间:2026-4-29 15:14:29

Xa__ 发表于 2026-4-28 16:49</p>
<p>[md]现在就是中断进不去了,一直在循环发送,所以请教一下看谁有实例,参考一下

[md]哦,你可以参考下上面链接的文章,我都测试了的。

注意DMA中断都使能了。

我想起来了,关于DMA完成中断这个地方好像需要手动

操作下,就是回调函数那个地方,我在文章基于STM32H7 DMA 双缓冲实现SPI逐个数据输出也特意分享出来了。

所属标签

相似问题

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版