操作步驟:
1.利用定時器公式計算出TIMx_ARR(計數(shù)個數(shù)(自動重載寄存器(TIMx_ARR)))和TIMx_psc(分頻系數(shù))(例如:72Mhz? ARR=9999,PSC=7199)
2.初始化定時器:TIM_TimeBaseInit()
3.打開時鐘RCC
4.清除標(biāo)志位 :TIM_ClearFlag()? ?(時間由高電平到低電平)
5.使能定時器:TIM_Cmd()? (打開定時器)
6.判斷是否定時完畢:TIM_GetFlagStatus()? (判斷是否高電平)
例如:
TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM7,ENABLE);//打開TIM6的外設(shè)時鐘? 改時鐘在這里改缓升,改成要求的時鐘
TIM_TimeBaseStructure.TIM_Prescaler = 4799;
TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;//向上計數(shù)? ? 改計數(shù)模式在這里改? 改為? TIM_CounterMode_Down? 向下計數(shù)
TIM_TimeBaseStructure.TIM_Period = 1999;//秒數(shù)在這里改? 0.5秒對應(yīng)4999? 1秒對應(yīng)9999? 兩秒對應(yīng)19999
TIM_TimeBaseInit(TIM7,&TIM_TimeBaseStructure);//這里改為對應(yīng)的TIM
TIM_ClearFlag(TIM7, TIM_FLAG_Update);//這里改為對應(yīng)的TIM
TIM_ITConfig(TIM7, TIM_IT_Update,ENABLE);//這里改為對應(yīng)的TIM使能定時器中斷
TIM_Cmd(TIM7, ENABLE);//使能或者失能TIMx外設(shè)
TIM_GetFlagStatus(TIM7, TIM_FLAG_Update);//檢查指定的TIM標(biāo)志位設(shè)置與否
注意:main.c文件中一定要添加頭文件名? ?#include"stm32f10x.h"
操作步驟;
1.設(shè)置外部中斷初始化函數(shù) :EXTI_Init()
2.打開復(fù)用功能時鐘(AFIO)(AFIO屬于APB2)
3.設(shè)置管腳中斷函數(shù):GPIO_EXTILineConfig()
4.設(shè)置優(yōu)先級初始化函數(shù)NVIC_Config()
5.設(shè)置中斷信號輸入管腳初始化函數(shù):GPIO_con()
6.編寫中斷服務(wù)函數(shù)
中斷服務(wù)函數(shù)列表:
1.EXTI0_IRQHandler
2.EXTI2_IRQHandler
3.EXTI3_IRQHandler
4.EXTI4_IRQHandler
5.EXTI9_5_IRQHandler
1.EXTI15_10_IRQHandler