yoowo~ 2023-04-14 10:23 采纳率: 7.1%
浏览 23

STM32F031ADC数据错位,三个通道的值换来换去

为什么ADC三个通道的值一直在换来换去啊,代码如下

int main()  
{  
    TIM3_Init(999, 79);  
    ADC1_Init();;  
  
while (1)  
    {  
        switch (event)  
        {  
        case 0 :  
        {  
             ADC_StartOfConversion(ADC1);  
            ADC_ChannelConfig(ADC1, ADC_Channel_6, ADC_SampleTime_55_5Cycles);  
        }  
        break;  
        case 1 :  
        {  
             data1 = ADC_GetConversionValue(ADC1);  
        }  
        break;  
        case 2 :  
        {  
             ADC_StartOfConversion(ADC1);  
            ADC_ChannelConfig(ADC1, ADC_Channel_7, ADC_SampleTime_55_5Cycles);  
        }  
        break;  
        case 3 :  
        {  
             data2 = ADC_GetConversionValue(ADC1);  
        }  
        break;  
        case 4 :  
        {  
            ADC_StartOfConversion(ADC1);  
            ADC_ChannelConfig(ADC1, ADC_Channel_9, ADC_SampleTime_55_5Cycles);  
        }  
        break;  
        case 5 :  
        {  
             data3 = ADC_GetConversionValue(ADC1);  
        }  
        break;  
        case 6 :  
        {  
  
        }  
        break;  
        case 7 :  
        {  
   
          value1 = (float)data1*3.3/1023;  
          value2 = (float)data2*3.3/1023;   
              value3 = (float)data3*3.3/1023;  
                      
            event = 0;  
        }  
        break;  
        }  
    }  
}  
  
void TIM3_IRQHandler(void)  
{  
    if (TIM_GetITStatus(TIM3, TIM_IT_Update) == SET)  
    {  
        TIM_ClearITPendingBit(TIM3, TIM_IT_Update);  
        event++;  
    }  
} 

在用STM32F407的时候完全没有问题,一样的代码,一样的功能。

有没有同学能发现问题,指教指教。

  • 写回答

1条回答 默认 最新

  • 丘比特惩罚陆 Java领域新星创作者 2023-04-15 08:25
    关注

    ADC三个通道的值在不断变化可能是因为没有给定适当的延时,以等待ADC完成转换。你可以尝试在每个转换后添加一个小的延时来解决这个问题。例如,可以在 ADC_GetConversionValue() 后添加一个 Delay() 函数来等待转换完成。 另外,请确保 ADC 的采样时间和时钟配置正确。

    评论

报告相同问题?

问题事件

  • 创建了问题 4月14日

悬赏问题

  • ¥15 LLM accuracy检测
  • ¥15 pycharm添加远程解释器报错
  • ¥15 如何让子窗口鼠标滚动独立,不要传递消息给主窗口
  • ¥15 如何能达到用ping0.cc检测成这样?如图
  • ¥15 关于#DMA固件#的问题,请各位专家解答!
  • ¥15 matlab生成的x1图不趋于稳定,之后的图像是稳定的水平线
  • ¥15 请问华为OD岗位的内部职业发展通道都有哪些,以及各个级别晋升的要求
  • ¥20 微信小程序 canvas 问题
  • ¥15 系统 24h2 专业工作站版,浏览文件夹的图库,视频,图片之类的怎样删除?
  • ¥15 怎么把512还原为520格式