您现在的位置: 主页 > MCU > 单片机应用 > sTM32 使用TIMx_CH1作为 Tx1F_ED 计数器时钟 -
本文所属标签:
为本文创立个标签吧:

sTM32 使用TIMx_CH1作为 Tx1F_ED 计数器时钟 -

来源: 网络用户发布,如有版权联系网管删除 2018-09-08 

[导读]环境:iar arm 5.3stm32f103vbt6使用PA.8 外部输入10Mhz的方波。可从systick中断得到数据4.4×5000(预分频值)×1000(tick中断时间)=20MHz属于双边沿检测,一个PA.8个脉冲有2个边沿,所以时钟加倍。由于使用了TI1F

环境:iar arm 5.3

本文引用地址: http://www.21ic.com/app/mcu/201808/781819.htm

stm32f103vbt6

使用PA.8 外部输入10Mhz的方波。可从systick中断得到数据4.

4×5000(预分频值)×1000(tick中断时间)=20MHz

属于双边沿检测,一个PA.8个脉冲有2个边沿,所以时钟加倍。

由于使用了TI1F_ED它的结构如下:


voidRCC_Configuration(void){/*SetupSTM32system(clock,PLLandFlashconfiguration)*/SystemInit();/*EnableGPIOA,GPIOCandUSART1clock*/RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA"RCC_APB2Periph_GPIOC|RCC_APB2Periph_TIM1,ENABLE);}GPIO_InitStructure.GPIO_Pin=GPIO_Pin_8;GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IN_FLOATING;GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;GPIO_Init(GPIOA,&GPIO_InitStructure);voidTIM1_Init(void){TIM_TimeBaseInitTypeDefTIM_TimeBaseStructure;TIM_TimeBaseStructure.TIM_Period=65535;TIM_TimeBaseStructure.TIM_Prescaler=5000;TIM_TimeBaseStructure.TIM_ClockDivision=TIM_CKD_DIV1;TIM_TimeBaseStructure.TIM_CounterMode=TIM_CounterMode_Up;TIM_TimeBaseInit(TIM1,&TIM_TimeBaseStructure);TIM_TIxExternalClockConfig(TIM1,TIM_TIxExternalCLK1Source_TI1ED,TIM_ICPolarity_Rising,0);TIM_Cmd(TIM1,ENABLE);}intmain(void){RCC_Configuration();GPIO_Config();TIM1_Init();/*SetupSysTickTimerfor1msecinterrupts*/if(SysTick_Config(SystemFrequency/1000)){/*Captureerror*/while(1);}while(1){}}voidSysTick_Handler(void){staticu32i=0;if(i==0){i=1;gusData=0;TIM_SetCounter(TIM1,0);}else{i=0;gusData=TIM_GetCounter(TIM1);}}





              查看评论 回复



嵌入式交流网主页 > MCU > 单片机应用 > sTM32 使用TIMx_CH1作为 Tx1F_ED 计数器时钟 -
 

"sTM32 使用TIMx_CH1作为 Tx1F_ED 计数器时钟 -"的相关文章

网站地图

围观()