STM32外部脉冲计数

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

TIM_TimeBaseInit(TIM2, &TIM_TimeBaseStructure); // Time base configuration TIM_ETRClockMode2Config(TIM2, TIM_ExtTRGPSC_OFF, TIM_ExtTRGPolarity_NonInverted, 0); TIM_SetCounter(TIM2, 0); TIM_ClearITPendingBit(TIM2, TIM_IT_Update); TIM_ITConfig(TIM2,TIM_IT_Update, ENABLE); TIM_Cmd(TIM2, ENABLE); } //第四步写中断函数, (视情况而定) void TIM2_IRQHandler(void) //周期 0.25mS { if (TIM_GetITStatus(TIM2, TIM_IT_Update) != RESET) { TIM_ClearITPendingBit(TIM2, TIM_IT_Update); } } //第五步,主函数应用 Main() { ….. …. while(1) { COUN1=TIM1->CNT; COUN2=TIM2->CNT; } }
STM32 外部脉冲计数
强子 2015/06/17 以 STM32F103C8T6 为例:
//第一步:设置为wenku.baidu.com空输入模式 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOA, &GPIO_InitStructure); //第二步:声明中断,配置优先级(无需中断时不需要此操作) NVIC_InitStructure.NVIC_IRQChannel = TIM2_IRQn; NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0; NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0; NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; NVIC_Init(&NVIC_InitStructure); //第三步配置定时器 void TIM2_Configuration(void) //只用一个外部脉冲端口 { TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure; RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE); //配置 TIMER2 作为计数器 TIM_DeInit(TIM2); TIM_TimeBaseStructure.TIM_Period = 1; TIM_TimeBaseStructure.TIM_Prescaler = 0x00; TIM_TimeBaseStructure.TIM_ClockDivision = 0x0; TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; //向上计数
相关文档
最新文档