stm32使用cubeMX配置TIM定时器让LED灯闪烁
【摘要】 @TOC 前言本文将介绍stm32定时器的使用。 一、定时器介绍定时器是单片机内部的特殊功能模块。在控制系统中,常常要求有一些实时时钟以实现定时或者延时控制,如定时中断、定时检测、定时扫描等等,也往往要求有计数器,对外部事件进行计数。要实现定时或者延时功能,一般有三种方法:软件定时,不可编程硬件定时,可编程硬件定时。软件定时——让软件循环执行一段程序,程序本身并无执行目的,而是通过执行程序延...
@TOC
前言
本文将介绍stm32定时器的使用。
一、定时器介绍
定时器是单片机内部的特殊功能模块。
在控制系统中,常常要求有一些实时时钟以实现定时或者延时控制,如定时中断、定时检测、定时扫描等等,也往往要求有计数器,对外部事件进行计数。
要实现定时或者延时功能,一般有三种方法:软件定时,不可编程硬件定时,可编程硬件定时。
软件定时——让软件循环执行一段程序,程序本身并无执行目的,而是通过执行程序延时固定的时间,也就是以前的程序中经常使用的延时程序。这种方法降低了cpu的利用率。
不可编程硬件定时——如外部芯片555 时基电路,通过外部阻容,达到一定的延时功能,改变阻容大小可以改变延时长度。这种定时器取决于硬件,设定好以后不能通过软件更改。
可编程定时器——这种定时器的定时值可以通过软件确定和修改,使用灵活便捷。
二、CubeMX配置及工程代码讲解
1.CubeMX配置
1.选择单片机型号
2.设置引脚功能
3.选择时钟源
4.开启Debug仿真
5.配置定时器
定时器定时时间简单计算方法:这里我们时钟树选择的时钟频率是72MHZ,用72MHZ/72/50000就得到了计数的频率然后再取倒数就是我们想要的定时时间了。
6.配置时钟树
7.创建工程
2.代码讲解
/* USER CODE BEGIN 2 */
//start TIM1
HAL_TIM_Base_Start_IT(&htim1);//以中断方式启动定时器
/* USER CODE END 2 */
/* USER CODE BEGIN 0 */
//当到达指定定时值时进入中断执行中断任务
void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
{
if(htim==&htim1)
{
HAL_GPIO_TogglePin(GPIOB,GPIO_PIN_5);//对GPIO口的电平进行反转(低-高,高—低)
}
}
总结
本文简单讲述了定时器中断的使用,主要就是要注意中断回调函数的使用方法,以及打开定时器的方法。
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)