标准库定时器及中断

操作步骤:

1.利用定时器公式计算出TIMx_ARR(计数个数(自动重载寄存器(TIMx_ARR)))和TIMx_psc(分频系数)(例如:72Mhz  ARR=9999,PSC=7199)

定时器功能框图

2.初始化定时器:TIM_TimeBaseInit()

3.打开时钟RCC

4.清除标志位 :TIM_ClearFlag()   (时间由高电平到低电平)

5.使能定时器:TIM_Cmd()  (打开定时器)

6.判断是否定时完毕:TIM_GetFlagStatus()  (判断是否高电平)

例如:

TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;

RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM7,ENABLE);//打开TIM6的外设时钟  改时钟在这里改,改成要求的时钟

TIM_TimeBaseStructure.TIM_Prescaler = 4799;

TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;//向上计数    改计数模式在这里改  改为  TIM_CounterMode_Down  向下计数

TIM_TimeBaseStructure.TIM_Period = 1999;//秒数在这里改  0.5秒对应4999  1秒对应9999  两秒对应19999

TIM_TimeBaseInit(TIM7,&TIM_TimeBaseStructure);//这里改为对应的TIM

TIM_ClearFlag(TIM7, TIM_FLAG_Update);//这里改为对应的TIM

TIM_ITConfig(TIM7, TIM_IT_Update,ENABLE);//这里改为对应的TIM使能定时器中断

TIM_Cmd(TIM7, ENABLE);//使能或者失能TIMx外设

TIM_GetFlagStatus(TIM7, TIM_FLAG_Update);//检查指定的TIM标志位设置与否

注意:main.c文件中一定要添加头文件名   #include"stm32f10x.h"


操作步骤;

1.设置外部中断初始化函数 :EXTI_Init()

2.打开复用功能时钟(AFIO)(AFIO属于APB2)

3.设置管脚中断函数:GPIO_EXTILineConfig()

4.设置优先级初始化函数NVIC_Config()

5.设置中断信号输入管脚初始化函数:GPIO_con()

6.编写中断服务函数

中断服务函数列表:

1.EXTI0_IRQHandler

2.EXTI2_IRQHandler

3.EXTI3_IRQHandler

4.EXTI4_IRQHandler

5.EXTI9_5_IRQHandler

1.EXTI15_10_IRQHandler

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容