关于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);
}
路过~帮顶 不懂帮顶
页:
[1]