你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

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

[复制链接]
robotfan 提问时间:2015-5-8 22:38 /
今天碰到一个奇怪的问题,开了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);
    }


收藏 评论2 发布时间:2015-5-8 22:38

举报

2个回答
qscvhu 回答时间:2015-5-9 10:09:58
路过~帮顶
eurphan 回答时间:2015-5-9 23:46:20
不懂帮顶
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版