[STM32F2] 不知道什么原因会导致 HAL_ADCEx_Calibration_Start() 函数执行失败

[复制链接]
378|0
lilaiju 发表于 2025-11-14 15:44 | 显示全部楼层 |阅读模式

HAL_Delay(5000);
        if (HAL_ADCEx_Calibration_Start(&hadc1,ADC_SINGLE_ENDED) != HAL_OK)
        {
                print_debug_str("Did not calibrate right!");
        }
        else
        {
                char buf[32];
                sprintf(buf,"Calibration Factor: %lu\r\n",ADC1->CALFACT);
                print_debug_str(buf);
        }
但如果我在这一行设置断点:
if (HAL_ADCEx_Calibration_Start(&hadc1, ADC_SINGLE_ENDED) != HAL_OK)
然后单步跳过(step over),它就会正常工作。
如果移除 HAL_Delay(5000),函数不会执行, 除非我设置断点。即便断点后立即继续运行,此时实际延迟远小于 5 秒,函数也能返回 HAL_OK。
我当初添加这个延迟是因为觉得 ADC 需要更多稳定时间,但事实似乎并非如此。我甚至把延迟延长到 15 秒,仍然无法返回 HAL_OK。

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

本版积分规则

68

主题

68

帖子

0

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