STM32F103利用CubeMX配置开启定时中断

1、外部晶振8MHz,下载方式SWD模式,需求配置定时器1,产生每100ms一次中断

新建工程、配置晶振、选择下载方式等略

2、查阅资料,STM32F103的时钟树分配

STM32F103利用CubeMX配置开启定时中断_第1张图片

 3、配置CubeMX的时钟树

STM32F103利用CubeMX配置开启定时中断_第2张图片

 4、配置定时器-开启定时中断

STM32F103利用CubeMX配置开启定时中断_第3张图片

 5、配置定时时间

定时周期 = (Prescaler + 1) × (Period + 1) ÷ 时钟频率 单位:秒(S))

由步骤3知,时钟频率72MHz = 72 × 10^6(Hz)

定时100ms = 0.1(S) ,故(Prescaler + 1) × (Period + 1) = 0.1×72×10^6=72×10^5

(Prescaler + 1)(Period + 1)的值均不能大于65535,这里选择 Prescaler = 7200-1;Period =1000-1;

STM32F103利用CubeMX配置开启定时中断_第4张图片

 6、代码生成

7、补充初始化代码

 放在main函数里,死循环之前,系统配置的初始化之后

	__HAL_TIM_CLEAR_FLAG(&htim1, TIM_FLAG_UPDATE);//启用前清除TIM中断标志位
	__HAL_TIM_CLEAR_IT(&htim1, TIM_IT_UPDATE);//启用前清除TIM中断
	HAL_TIM_Base_Start_IT(&htim1);//开启TIM计数

8、调用定时服务中断

//TIM定时返回函数
void HAL_TIM_PeriodElapsedCallback (TIM_HandleTypeDef *htim)//回调函数
{

	if(htim->Instance == TIM1)//判断进入定时1通道回调函数
	{

    }
}

你可能感兴趣的:(STM32,stm32,嵌入式硬件,单片机)