打印
[STM32F1]

STM32F103 通过HAL库配置ADC DMA传输,出现hardfault

[复制链接]
1096|20
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
classroom|  楼主 | 2024-8-27 10:40 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
STM32F103 通过HAL库配置ADC DMA传输,出现hardfault

使用特权

评论回复
沙发
duo点| | 2024-8-27 13:28 | 只看该作者
时钟配置错误或未启用

使用特权

评论回复
板凳
两只袜子| | 2024-8-27 13:29 | 只看该作者
ADC和DMA的初始化配置有误吧

使用特权

评论回复
地板
cr315| | 2024-8-27 13:30 | 只看该作者
堆栈溢出

使用特权

评论回复
5
elephant00| | 2024-8-27 13:31 | 只看该作者
检查HAL库函数的使用是否正确,包括参数和返回值。

使用特权

评论回复
6
onlycook| | 2024-8-27 13:31 | 只看该作者
硬件故障或短路?

使用特权

评论回复
7
七毛钱| | 2024-8-27 13:32 | 只看该作者
更新HAL库和固件

使用特权

评论回复
8
jcky001| | 2024-8-27 14:00 | 只看该作者
检查DMA的配置是否会导致内存越界访问。

使用特权

评论回复
9
烟雨蒙蒙520| | 2024-8-28 12:17 | 只看该作者
缓冲区必须按照数据总线的对齐要求对齐。通常是 4 字节对齐。

使用特权

评论回复
10
szt1993| | 2024-8-28 16:19 | 只看该作者
肯定是配置错误

使用特权

评论回复
11
azhangxingweia| | 2024-8-29 09:06 | 只看该作者
DMA配置错误,导致地址越界错误。我以前遇到过。

使用特权

评论回复
12
公羊子丹| | 2025-3-16 07:50 | 只看该作者
这个问题我也遇到过,通常是DMA地址设置错误导致的,你检查过DMA的目标地址是否正确吗?

使用特权

评论回复
13
周半梅| | 2025-3-16 07:51 | 只看该作者
STM32F1的DMA对数据对齐要求比较严格,看看你的ADC缓冲区是不是对齐了?

使用特权

评论回复
14
帛灿灿| | 2025-3-16 07:54 | 只看该作者
确保你的DMA和ADC时钟已经打开,缺少 __HAL_RCC_DMA1_CLK_ENABLE(); 可能会导致hardfault。

使用特权

评论回复
15
童雨竹| | 2025-3-16 07:55 | 只看该作者
你用的是什么模式?单次转换还是循环模式?有时候配置不同,DMA的设置也要调整。

使用特权

评论回复
16
万图| | 2025-3-16 07:56 | 只看该作者
试试看在 HAL_ADC_Start_DMA() 之前手动清除一下 DMA_FLAG_TC,有时候DMA状态没清理干净会出问题。

使用特权

评论回复
17
Wordsworth| | 2025-3-16 07:57 | 只看该作者
如果是多通道ADC,你的数组大小是否匹配转换的通道数量?数组大小不对可能会导致访问越界。

使用特权

评论回复
18
Bblythe| | 2025-3-16 07:58 | 只看该作者
Debug模式下可以查看 HardFault 发生时的 CFSR 寄存器,看看是访问无效地址还是其他错误。

使用特权

评论回复
19
Pulitzer| | 2025-3-16 07:59 | 只看该作者
STM32F103的DMA使用时最好关闭 Data Cache,否则可能会导致数据不同步甚至HardFault。

使用特权

评论回复
20
Uriah| | 2025-3-16 08:00 | 只看该作者
你用的HAL库版本是多少?有些旧版本的HAL库在DMA部分可能存在bug,试试看更新到最新版本。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

460

主题

2619

帖子

1

粉丝