今天碰到一个奇怪的问题,开了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); } |
路过~帮顶 |
不懂帮顶 |
stlink V3mini 调试器不能识别stm32f030F4P6芯片,有解决办法吗?
STM32F0 SMBus 中断怎么开启
STM32F072 无法清除EXTI4_15_IRQn pending标志,导致无法进入stop模式
基于GCC编译器的initcall在STM32如何实现?
想找一款pin to pin的MCU(参考STM32F105RC),支持CAN FD的,64PIN封装,各位小伙伴们有推荐吗
L9663如何使用上行缓冲区发送同步脉冲
如何使用定时器在任意IO输出PWM
下载到flash无法运行,开调试就能成功,是什么问题?
STM32是小端模式,但为什么Keil中memory窗口和反汇编窗口的32位指令不一致?
各位朋友,有没有STM32F0系列教程,最好是汇编语言的。