程序员超庆 2022-04-03 15:23 采纳率: 0%
浏览 153

STM32使用ADC时,会出现阻塞现象

使用ADC转换时,下述函数会阻塞while循环中,请问如何解决(stm32f103c8t6)

u16 ADC_Trans(void)
{
    u16 adc_value = 0;
    u8 i = 0;
    
    for(i = 0; i < 50; i++)
    { 
        //开始转换
        ADC_SoftwareStartConvCmd(ADC1,ENABLE);
        
        //转换是否结束
        **while(!ADC_GetFlagStatus(ADC1,ADC_FLAG_EOC));  **
        adc_value = adc_value + ADC_GetConversionValue(ADC1);//读ADC中的值
    }
    printf("%d\r\n",adc_value);
    return adc_value / 50;
}

  • 写回答

1条回答 默认 最新

  • 生如~夏花 2022-04-05 07:55
    关注

    这个代码具体问题要调试分析
    做嵌入式的ADC调试,一般不自己从0写代码
    你可以参考官方的示例代码,或者STM32开发板的示例代码,例如正点原子,野火等等

    评论

报告相同问题?

问题事件

  • 创建了问题 4月3日