原子哥的实验18ADC实验测正弦波,遇到问题

2019-07-20 15:26发布

因为ADC的输入电压在0~3.3V。我用信号发生器设置一个0~2V正弦波输出频率为500HZ也就是周期为2ms。ADC采样周期ADC_SampleTime_28Cycles也就是大概(2us)。从串口发送数据显示,可基本上是3.299V测出来。
然后我直接测adcx的值,也基本上出来4095。为什么啊?
int main(void)
{
        u16 adcx;
        float temp;
        NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置系统中断优先级分组2
        delay_init(168);    //初始化延时函数
        uart_init(115200);        //初始化串口波特率为115200
        LED_Init();                                        //初始化LED
        LCD_Init();         //初始化LCD接口
        Adc_Init();         //初始化ADC
        POINT_COLOR=RED;
        LCD_ShowString(30,50,200,16,16,"Explorer STM32F4");       
        LCD_ShowString(30,70,200,16,16,"ADC TEST");       
        LCD_ShowString(30,90,200,16,16,"ATOM@ALIENTEK");
        LCD_ShowString(30,110,200,16,16,"2014/5/6");          
        POINT_COLOR=BLUE;//设置字体为蓝 {MOD}
        LCD_ShowString(30,130,200,16,16,"ADC1_CH5_VAL:");             
        LCD_ShowString(30,150,200,16,16,"ADC1_CH5_VOL:0.000V");        //先在固定位置显示小数点      
        while(1)
        {
                adcx=Get_Adc_Average(ADC_Channel_5,1);//获取通道5的转换值,20次取平均
                printf("%d ",adcx);

        }
}

这是主程序。

下面是串口数据

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。