[STM32G0] STM32G070 I2C HAL库函数疑问

[复制链接]
3171|37
万图 发表于 2025-1-24 17:13 | 显示全部楼层
你可以不用管那些DMA相关的代码,只要不启用DMA模式,它是不会生效的,默认还是中断模式。
Wordsworth 发表于 2025-1-24 17:15 | 显示全部楼层
DMA适合在从机模式下快速响应主机请求,比如需要频繁收发数据的场景,效率会比中断模式高很多。
Bblythe 发表于 2025-1-24 17:16 | 显示全部楼层
STM32G070是一款低功耗芯片,DMA还能降低CPU的功耗消耗,这可能也是设计的一个考量。
Pulitzer 发表于 2025-1-24 17:18 | 显示全部楼层
如果你的项目对数据传输性能要求不高,可以直接忽略那些DMA处理逻辑,影响不大。
Uriah 发表于 2025-1-24 17:19 | 显示全部楼层
HAL库的函数是通用的,既考虑到简单应用,也为复杂应用场景预留了支持,代码会稍微冗余一些。
Clyde011 发表于 2025-1-24 17:20 | 显示全部楼层
建议看看I2C章节的参考手册和DMA配置部分,结合项目实际需求决定用不用DMA模式吧。
AutoMotor 发表于 2025-1-25 16:48 | 显示全部楼层
总的来说是降低cpu占用率,这是dma的特点
芯路例程 发表于 2025-1-25 21:54 | 显示全部楼层
在i2c通信中,dma(直接存储器访问)请求用于提高数据传输的效率并减轻cpu的负担
PreWorld 发表于 2025-1-26 19:03 | 显示全部楼层
处理dma请求包含在实现代码中
理想阳 发表于 2025-1-27 17:02 | 显示全部楼层
这是为了提高数据传输效率。DMA可以自动传输数据,减少CPU的参与,尤其是数据量大的时候。
幸福小强 发表于 2025-11-7 08:44 | 显示全部楼层
使用DMA能减少中断处理的复杂性,可以减少CPU的干预
mintspring 发表于 2026-2-2 15:40 | 显示全部楼层
首先要明确:这两个函数的核心是中断模式(IT),但 HAL 库在实现时预留 / 处理 DMA 请求
xinxianshi 发表于 2026-2-3 09:24 | 显示全部楼层
STM32G070 的 I2C HAL 库基于标准 HAL 框架,和其他 G0 系列芯片的 I2C HAL 库逻辑一致
antusheng 发表于 2026-2-4 09:18 | 显示全部楼层
首先要明确:HAL_I2C_Slave_Seq_Transmit/Receive_IT是中断模式的序列收发函数,但 STM32 的 HAL 库设计中,I2C 的 “中断模式” 并非完全脱离 DMA,而是会根据配置灵活适配 DMA / 纯中断两种数据搬运方式,这是理解该设计的关键。
AutoMotor 发表于 2026-2-4 15:43 | 显示全部楼层
中断确实能快速响应事件,提升数据传输效率。
MintMilk 发表于 2026-2-5 19:31 | 显示全部楼层
使用DMA提高数据传输效率,加快处理速度,提升系统性能。
AIsignel 发表于 2026-2-6 12:53 | 显示全部楼层
中断操作确实能快速提升数据传输速率,因为它允许CPU在处理其他任务时,及时响应外部事件。
Moon月 发表于 2026-2-7 12:32 | 显示全部楼层
DMA利用硬件加速数据传输,降低CPU负担,提升传输速度和效率。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 在线客服 返回列表 返回顶部
0