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

环境:iar arm 5.3

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);}}



本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除( 邮箱:macysun@21ic.com )。
换一批
延伸阅读
关闭