欢迎来到天天文库
浏览记录
ID:58676282
大小:81.00 KB
页数:10页
时间:2020-10-15
《stm32脉冲方波捕获.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、1、stm32脉冲方波捕获脉冲方波长度捕获a)目的:基础PWM输入也叫捕获,以及中断配合应用。使用前一章的输出管脚PB1(19脚),直接使用跳线连接输入的PA3(13脚),配置为TIM2_CH4,进行实验。b)对于简单的PWM输入应用,暂时无需考虑TIM1的高级功能之区别,按照目前我的应用目标其实只需要采集高电平宽度,而不必知道周期,所以并不采用PWM输入模式,而是普通脉宽捕获模式。c)初始化函数定义:voidTIM_Configuration(void); //定义TIM初始化函数d)初始化函数调用:TIM_Co
2、nfiguration(); //TIM初始化函数调用e)初始化函数,不同于前面模块,TIM的CAP初始化分为三部分——计时器基本初始化、通道初始化和时钟启动初始化:voidTIM_Configuration(void)//TIM2的CAP初始化函数{ TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;//定时器初始化结构 TIM_ICInitTypeDefTIM_ICInitStructure; //通道输入初始化结构//TIM2输出初始化 TIM
3、_TimeBaseStructure.TIM_Period=0xFFFF; //周期0~FFFF TIM_TimeBaseStructure.TIM_Prescaler=5; //时钟分频 TIM_TimeBaseStructure.TIM_ClockDivision=0; //时钟分割 TIM_TimeBaseStructure.TIM_CounterMode=TIM_CounterMode_Up;//模式 TIM_TimeBaseInit(TIM2,&TIM_TimeBaseStr
4、ucture);//基本初始化//TIM2通道的捕捉初始化 TIM_ICInitStructure.TIM_Channel=TIM_Channel_4;//通道选择 TIM_ICInitStructure.TIM_ICPolarity=TIM_ICPolarity_Falling;//下降沿 TIM_ICInitStructure.TIM_ICSelection=TIM_ICSelection_DirectTI;//管脚与寄存器对应关系 TIM_ICInitStructure.TIM_ICPrescale
5、r=TIM_ICPSC_DIV1;//分频器 TIM_ICInitStructure.TIM_ICFilter=0x4; //滤波设置,经历几个周期跳变认定波形稳定0x0~0xF TIM_ICInit(TIM2,&TIM_ICInitStructure); //初始化 TIM_SelectInputTrigger(TIM2,TIM_TS_TI2FP2); //选择时钟触发源 TIM_SelectSlaveMode(TIM2,TIM_SlaveMode_Reset);//触发
6、方式 TIM_SelectMasterSlaveMode(TIM2,TIM_MasterSlaveMode_Enable);//启动定时器的被动触发 TIM_ITConfig(TIM2,TIM_IT_CC4,ENABLE); //打开中断 TIM_Cmd(TIM2,ENABLE); //启动TIM2}f)RCC初始化函数中加入TIM时钟开启:RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM3,ENABLE);g)
7、GPIO里面将输入和输出管脚模式进行设置。IN_FLOATING,50MHz。h)使用中断的话在NVIC里添加如下代码://打开TIM中断(与前一章相同) NVIC_InitStructure.NVIC_IRQChannel=TIM2_IRQChannel; NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=3; NVIC_InitStructure.NVIC_IRQChannelSubPriority=2; NVIC_InitStructure.NVI
8、C_IRQChannelCmd=ENABLE;i)简单应用:变量=TIM_GetCapture4(TIM2);j)注意事项:i.由于我的需求只跟高电平宽度有关,所以避免了使用PWM输入模式,这样可以每个管脚捕捉一路信号。如果使用PWM模式,每一路需要占用两个寄存器,所以一个定时器只能同时使用两路PWM输入。ii.由于捕捉需要触发启动定时器,所以
此文档下载收益归作者所有