双ADC规则同步模式的初始化问题

2019-08-14 08:00发布

    直奔主题吧,我使用的是STM32F103C8T6芯片,需要设计双ADC规则同步模式并且利用中断读取ADC的值,我的初始化代码如附件图片。据我所知,当两个ADC设置为规则同步模式时,ADC1采集的数据会传输给DR寄存器的低16位,而ADC2采集的数据会传输给DR寄存器的高16位。然后我现在遇见的问题是:ADC2(我设置的是通道1)可以正常采集到模拟信号,也就是DR寄存器的高16位有数据;ADC1(我设置的是通道2)却无法读取到该IO口的模拟信号(确定有信号输入)准确来说是一直维持在1.6V不随外界输入信号的变化而变化。对于这个问题我怀疑是我写的ADC的初始化程序存在一些问题,希望写过类似程序的大神能帮我看看是否存在问题,先行谢过了!!~~
PS:在线等。。。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
11条回答
DownStars
2019-08-14 17:48
中断服务函数如下:
void ADC1_2_IRQHandler(void)
{       
        if (ADC_GetITStatus(ADC1,ADC_IT_EOC)==SET)
        {
                if(i<512)
                        {
                 ADC_12_ConvertedValue[i]=(uint32_t) ADC1->DR;
           i++;
                        }
                        else
                        {                       
                        j=i%512;
                        ADC_12_ConvertedValue[j]=(uint32_t) ADC1->DR;
            i++;
                        }               
        }
        ADC_ClearITPendingBit(ADC1,ADC_IT_EOC);
}

一周热门 更多>