stm32定时器触发ADC参考.doc

stm32定时器触发ADC参考.doc

ID:20980425

大小:352.50 KB

页数:3页

时间:2018-10-18

stm32定时器触发ADC参考.doc_第1页
stm32定时器触发ADC参考.doc_第2页
stm32定时器触发ADC参考.doc_第3页
资源描述:

《stm32定时器触发ADC参考.doc》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、STM32关于使用定时器触发ADC转换的解决办法和详细说明本人在使用STM32上的TIM2_CC2触发ADC转换的时候,发现始终调不出来,在网上找到了一些有价值的参考信息,然后在不懈的寻根究底下,终于找到问题的原因,废话少说,进入正题:以STM32ADC的常规通道为例(注入通道类似):如上图,STM32ADC的常规通道可以由以上6个信号触发任何一个,我们以使用TIM2_CH2触发ADC1,独立模式,每次仅测一条通道,则ADC的配置如下:(以下代码使用STM32固件库V3.5)voidADC_Configuration

2、(void){ADC_InitTypeDefADC_InitStructure;ADC_InitStructure.ADC_Mode=ADC_Mode_Independent;ADC_InitStructure.ADC_ScanConvMode=DISABLE;//关闭通道扫描模式ADC_InitStructure.ADC_ContinuousConvMode=DISABLE;//注意不要使用持续转换模式,否则只要触发一次,//后续的转换就会永不停歇(除非CONT清0),这样第一次以后的ADC,就不是由TIM2_CC

3、2来触发了ADC_InitStructure.ADC_ExternalTrigConv=ADC_ExternalTrigConv_T2_CC2;//配置TIM2_CC2为触发源ADC_InitStructure.ADC_DataAlign=ADC_DataAlign_Right;ADC_InitStructure.ADC_NbrOfChannel=1;ADC_Init(ADC1,&ADC_InitStructure);RCC_ADCCLKConfig(RCC_PCLK2_Div6);//配置时钟(12MHz),在RC

4、C里面还应配置APB2=AHB时钟72MHz,ADC_RegularChannelConfig(ADC1,ADC_Channel_8,1,ADC_SampleTime_1Cycles5);ADC_Cmd(ADC1,ENABLE);ADC_ResetCalibration(ADC1);while(ADC_GetResetCalibrationStatus(ADC1));ADC_StartCalibration(ADC1);//StartCalibrationregisterwhile(ADC_GetCalibratio

5、nStatus(ADC1));//waitingforfinishingthecalibrationADC_ExternalTrigConvCmd(ADC1,ENABLE);//设置外部触发模式使能(这个“外部“其实仅仅是相//对于ADC模块的外部,实际上还是在STM32内部)}这里再注意一点上面左图最顶上的那句话:当外部触发信号被选为ADC规则或注入转换时,只有它的上升沿可以启动转换。这跟下面的定时器2的正确配置关系很大。voidTIM2_Configuration(void){TIM_TimeBaseInitTy

6、peDefTIM_TimeBaseStructure;TIM_OCInitTypeDefTIM_OCInitStructure;TIM_TimeBaseStructure.TIM_Period=10000;//设置100ms一次TIM2比较的周期TIM_TimeBaseStructure.TIM_Prescaler=719;//系统主频72M,这里分频720,相当于100K的定时器2时钟TIM_TimeBaseStructure.TIM_ClockDivision=0x0;TIM_TimeBaseStructure.

7、TIM_CounterMode=TIM_CounterMode_Up;TIM_TimeBaseInit(TIM2,&TIM_TimeBaseStructure);TIM_OCInitStructure.TIM_OCMode=TIM_OCMode_PWM1;//下面详细说明TIM_OCInitStructure.TIM_OutputState=TIM_OutputState_Enable;//TIM_OutputState_Disable;TIM_OCInitStructure.TIM_Pulse=5000;TIM_O

8、CInitStructure.TIM_OCPolarity=TIM_OCPolarity_Low;//如果是PWM1要为Low,PWM2则为HighTIM_OC2Init(TIM2,&TIM_OCInitStructure);TIM_Cmd(TIM2,ENABLE);TIM_InternalClockConfig(TIM2);TIM_OC2Pr

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。