您好,欢迎来到尚车旅游网。
搜索
您的当前位置:首页ADC由TIM触发例子

ADC由TIM触发例子

来源:尚车旅游网
ADC由TIM触发例子

在使用TIM的输入捕获来触发ADC的采样时,为什么配置TIM时不配置成输入捕获模式,而配置成输出比较模式、

如下配置,,

ADC_InitStructure.ADC_Mode = ADC_Mode_Independent; ADC_InitStructure.ADC_ScanConvMode = DISABLE; ADC_InitStructure.ADC_ContinuousConvMode = ENABLE; ADC_InitStructure.ADC_ExternalTrigConv

=ADC_ExternalTrigConv_T2_CC2 ;(时钟TIM2通道2触发) ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right;

ADC_InitStructure.ADC_NbrOfChannel = 1; ADC_Init(ADC1, &ADC_InitStructure); /* ADC1 regular channel8 configuration */ ADC_RegularChannelConfig(ADC1, ADC_SampleTime_239Cycles5);

ADC_Cmd(ADC1, ENABLE); /* Enable ADC1 DMA */ ADC_DMACmd(ADC1, ENABLE);

ADC_ExternalTrigConvCmd(ADC1, ENABLE); ADC_ITConfig(ADC1,ADC_IT_EOC,ENABLE); //配置TIM2 OC2 为PWM模式

TIM_OCStructInit(&TIM_OCInitStructure); //设置缺省值 TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1; TIM_OCInitStructure.TIM_Pulse

TIM_TimeBaseStructure.TIM_Period / 2;//点空比

TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_Low; //TIM输出比较极性高(LOW也行)

TIM_OCInitStructure.TIM_OutputState TIM_OutputState_Enable;//使能输出状态

= =

ADC_Channel_8,

1,

TIM_OC2Init(TIM2, &TIM_OCInitStructure); //初始化TIM2的2通道

TIM_ITConfig(TIM2,TIM_IT_Update,ENABLE);

TIM_ARRPreloadConfig(TIM2, ENABLE); //使能TIMx在ARR上

预装载

存器

TIM_OC2PreloadConfig(TIM2,

TIM_OCPreload_Enable); //使能TIMx在CCR2上的预装载寄存器

TIM_Cmd(TIM2, ENABLE);//使能TIM1

TIM_CtrlPWMOutputs(TIM2, ENABLE);//TIM1 main Output Enable

(以上的方法为利用PWM的占空比波形进行输出,从而使T2获取一个向上的触发源)

而不将通道配成

/* TIM2 Input Capture Configuration */

TIM_ICInitStructure.TIM_Channel = TIM_Channel_2; TIM_ICInitStructure.TIM_ICPolarity = TIM_ICPolarity_Rising; TIM_ICInitStructure.TIM_ICSelection

TIM_ICSelection_DirectTI; //管脚与寄存器对应关系

TIM_ICInitStructure.TIM_ICPrescaler = TIM_ICPSC_DIV1; //输入模式下,捕获端口上的每一次边沿都触发一次捕获

TIM_ICInitStructure.TIM_ICFilter = 0x00 TIM_ICInit(TIM2, &TIM_ICInitStructure);

TIM_SelectInputTrigger(TIM2, TIM_TS_TI2FP2);//触发方式:触发信号的上升沿重新初始化计数器及触发寄存器的更新

TIM_SelectSlaveMode(TIM2, TIM_SlaveMode_Reset); //触发方式

//选中触发信号(TRGI)的上升沿重初始化计数器并触发寄存器的更新

TIM_SelectMasterSlaveMode(TIM2,

TIM_MasterSlaveMode_Enable); //启动定时器的被动触发

TIM_ITConfig(TIM2, TIM_IT_CC2, ENABLE );

=

TIM_Cmd(TIM2, ENABLE);

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- sceh.cn 版权所有 湘ICP备2023017654号-4

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务