硬汉嵌入式论坛

 找回密码
 立即注册
查看: 250|回复: 3
收起左侧

[ADC] stm32h7 adc怎么可以重新初始化?

[复制链接]

10

主题

17

回帖

47

积分

新手上路

积分
47
发表于 2024-2-19 18:05:52 | 显示全部楼层 |阅读模式
在做群脉冲测试时,ADC挂掉了,是否可以重新初始化让ADC重新运行起来?我试了下调用我开机时候的ADC_init()函数,发现跑飞了,


        /* 初始化ADC */
        if (HAL_ADC_Init(&AdcHandle) != HAL_OK)
        {
           Error_Handler(__FILE__, __LINE__);
        }

进入了这个error_handler,需要怎么才来重新让ADC初始化起来呢
回复

使用道具 举报

10

主题

17

回帖

47

积分

新手上路

积分
47
 楼主| 发表于 2024-2-19 20:40:17 | 显示全部楼层
调试时发现,SCB_InvalidateDCache_by_Addr((uint32_t *)ADCxValues, sizeof(ADCxValues)); 这里ADCxValues的数据一直不变,但ADC1寄存器的DR数据是一直在更新的,是不是DMA挂掉了?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106660
QQ
发表于 2024-2-20 00:14:41 | 显示全部楼层
进入了这个error_handler,需要怎么才来重新让ADC初始化起来呢


这个需要先调用DeInit函数,再重新初始化就可以了。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106660
QQ
发表于 2024-2-20 00:16:44 | 显示全部楼层
ndthome 发表于 2024-2-19 20:40
调试时发现,SCB_InvalidateDCache_by_Addr((uint32_t *)ADCxValues, sizeof(ADCxValues)); 这里ADCxValues ...

直接调用SCB_InvalidateDCache/SCB_CleanInvalidateDCache替换这个试试
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-4-29 07:42 , Processed in 0.186802 second(s), 26 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表