robotfan 发表于 2015-5-8 22:38:14

关于STM32F0R8T6定时器预分频配置影响AD采样值的问题

今天碰到一个奇怪的问题,开了TIM17的100ms中断,预分频99,发现以前正常采样电位器值的AD数据错误,明明是12位的AD通过调试查看变量发现采样到了6000多的值,但把预分频改为8以下则立马一切正常,我就纳闷了,两个完全不相关的配置怎么会影响,AD为DMA模式

#include "stm32f0xx.h"

uint16_t ADC_ConvertedValue;//ADC转换值



void ADC_Config(void)
{

   

}


int main(void)
{
    TIM_TimeBaseInitTypeDef a;//定时器配置结构体
    ADC_InitTypeDef ADC_InitStructure;//ADC配置结构体

    a.TIM_Prescaler=0;//定时器预分频(定时器时钟频率=晶振频率/(TIM_Prescaler+1))

   
    ADC_Config();
   
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1, ENABLE);//开启ADC时钟


    ADC_InitStructure.ADC_ContinuousConvMode = ENABLE;//设置选择连续采样
    ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right;//采样数据右对齐

    ADC_InitStructure.ADC_ExternalTrigConvEdge = ADC_ExternalTrigConvEdge_None;//ADC外部边缘触发无效
    ADC_InitStructure.ADC_Resolution = ADC_Resolution_12b;// 配置ADC转换分辨率 12bit
    ADC_InitStructure.ADC_ScanDirection = ADC_ScanDirection_Backward;//设置ADC扫描方向
    ADC_Init(ADC1, &ADC_InitStructure);//配置ADC

    ADC_ChannelConfig(ADC1, ADC_Channel_0, ADC_SampleTime_239_5Cycles);//配置ADC通道与采样周期

    ADC_Cmd(ADC1, ENABLE);//启动ADC1

    ADC_StartOfConversion(ADC1);//软件触发ADC启动转换


    while (1)
    {
      ADC_ConvertedValue=ADC_GetConversionValue(ADC1);
    }


qscvhu 发表于 2015-5-9 10:09:58

路过~帮顶

eurphan 发表于 2015-5-9 23:46:20

不懂帮顶
页: [1]
查看完整版本: 关于STM32F0R8T6定时器预分频配置影响AD采样值的问题