STM32定时器TIM控制

一、CubeMX的设置

1、新建工程,进行基本配置

2、配置定时器TIM2

1)定时器计算公式:(以下两条公式相同)

Tout = ((ARR+1) * PSC+1)) / Tclk
TimeOut = ((Prescaler + 1) * (Period + 1)) / TimeClockFren

Tout = TimeOut:定时器溢出时间(单位为us),多少触发(进入)一次TIM中断。
PSC = Prescaler:预分频系数(预分频器值)。
ARR = Period:自动重装载值,TIM计数当超过这个值,则清0重新计数。
Tclk = TimeClockFren:定时器的输入时钟频率(单位MHZ),当前使用的TIM2系统时钟频率。

eg: 

Tout = (71+1)*(999+1)/72 = 1000us
= 1 ms = 0.001 s

因此,定时器则0.001s触发一次中断。

2)配置分频系数为72-1,向上计数模式,计数周期为1000-1,使能自动重载模式。

3)开启定时器TIM2的中断

二、代码调试

在CubeMX中生成工程后,打开main.c添加中断响应之后所需的一些代码

main.c

  /* USER CODE BEGIN 2 */HAL_TIM_Base_Start_IT(&htim2); //以中断方式开启定时器2/* USER CODE END 2 */

上述添加的函数表示启动相应的定时器,“h”表示HAL库,“tim2”表示定时器2。

/* Private user code ---------------------------------------------------------*/
/* USER CODE BEGIN 0 */
//定时器回调函数
//当到达指定定时值时进入中断执行中断任务
void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
{static int i = 0; //定义一个静态变量iif(htim == &htim2) {//执行对应代码if(++i == 1000) //1s{i = 0;//对led灯或者其他外设进行操作HAL_GPIO_TogglePin(GPIOA,GPIO_PIN_0);//对GPIO口的电平进行反转(低-高,高—低)HAL_GPIO_TogglePin(GPIOA,GPIO_PIN_1);HAL_GPIO_TogglePin(GPIOA,GPIO_PIN_2);}}
}/* USER CODE END 0 */

上述以3个LED灯闪烁作为例子,可自行在CubeMX中设置

该函数为定时器的中断回调函数,当产生定时中断的时候,会自动调用这个函数。

在函数内部定义了一个静态变量:i ,当它等于1000的时候,才会执行if里面的代码。也就是说需要发生1000次中断,才会让LED的状态翻转。

前面根据公式计算出,一次定时中断的时间是0.001秒,所以1000次中断的时间是0.001*1000=1秒。也就是说每隔1秒,LED的状态翻转一次。

三、烧录结果

修改后,保存,编译、下载,重新上电。可以看到LED灯差不多每隔1秒翻转一次

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/1383065.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

服务器机柜可放多大显示器,一个标准服务器机柜究竟能够放多少服务器

常常就客户问大家,究竟标准服务器机柜的尺寸是多少?以及机柜可以放多少台服务器,这些也都是用户们比较关心,以及比较关注的问题,为此小编为大家进行总结。 2U标准服务器机柜尺寸简介 在了解42U标准服务器机柜尺寸之前&#xff0c…

15寸计算机显示器,苹果确认15寸RMBP支持全球首款5K显示器

苹果在今年4月发布了OS X 10.10.3,并开启了Retina 5K iMac和2013款Mac Pro对戴尔双线缆5K显示器的支持,不过当时没有任何苹果笔记本支持这款显示器。 苹果确认15寸RMBP支持全球首款5K显示器(图片来自快科技) 据MacX报道,现在苹果更新了支持网…

送一台27寸高清显示器

为回馈广大读者粉丝们的大力支持,本号主特地选了这款 27寸4K显示器作为抽奖礼品送给大家。这礼物呢,可手捧追剧玩游戏,也可写字撰文搞创作。无论是自己玩,还是当礼物送人,都是理想佳品。 赠送规则 本次活动联合了其他 …

眼镜中的“黑科技”| 3D打印眼镜为您带来全新配戴体验

3D打印定制眼镜 你的眼镜应为你而生 每次换眼镜的时候,近视人士往往都会遇到选镜框的烦恼…… “这个镜框风格我喜欢,但是尺寸不合适,好可惜” “孩子调皮好动,镜架总是摔坏” “想要一款眼镜,适合头围大、瞳距小…

服务器显示器多少寸合适,购买别冲动!先看多大的显示器适合你

1大屏幕固然有许多优点 【中关村在线显示器频道原创】随着大屏显示时代的到来,无论是电视、手机还是显示器的屏幕都越来越大,消费者在选购产品的时候,也更加愿意选择大屏的产品,一方面大屏幕能够显示更多的内容,另一方…

计算机电脑显示器都有多大的,计算机显示器有多大? 24或27?总是有你的食物...

随着电子竞技产业的日趋成熟,显示产业的重要组成部分也已经崛起,争夺分辨率地位的斗争从未停止。尽管4K显示器具有足够的细微差别,并且4K资源和游戏套件已经跟上,但业内仍然有制造商在开发6K和8K显示器...实际上,从显示技术的发展和变化来看,盲目追求分辨率是最重要的。路…

配置家用计算机lcd,2017家用电脑显示器多大最合适

显示器(display)通常也被称为监视器。显示器是属于电脑的I/O设备,即输入输出设备。它是一种将一定的电子文件通过特定的传输设备显示到屏幕上再反射到人眼的显示工具。下面是学习啦小编带来的关于2017家用电脑显示器多大最好的内容,欢迎阅读! 2017家用电脑显示器多大最好 这个…

nodejs+vue+elementui多媒体素材管理系统

语言 node.js 框架:Express 前端:Vue.js 数据库:mysql 数据库工具:Navicat 开发软件:VScode 多媒体素材管理系统的设计与实现,最主要的是满足使用者的使用需求,并且可以向使用者提供一些与系统配套的服务。…

【MySQL--->数据库基础】

文章目录 [TOC](文章目录) 一、基本概念二、实际应用中的数据库三、mysql的架构四、mysql语句分类五、存储引擎查看 一、基本概念 mysql本质是一个CS模式的网络服务,mysql是客户端,mysqld是服务端,提供高效的数据存取方案.数据库系统简单来说是一个数据集合加上管理这个数据集…

Android自定义软键盘KeyboardView 使用实例

在有些应用中会有定制软键盘的需求,往往实现起来会有些难度,或者说实现出来的效果不尽如人意。 最近在项目中有这种需求 博主也是不辱使命地完成了这个需求,效果图如下 说一下思路的和详细实现 主要是利用android自带的android.input…

IntelliJ IDEA和Android studio怎么去掉usage和作者提示

截止到目前我已经写了 600多道算法题,其中部分已经整理成了pdf文档,目前总共有1000多页(并且还会不断的增加),大家可以免费下载 下载链接:https://pan.baidu.com/s/1hjwK0ZeRxYGB8lIkbKuQgQ 提取码&#xf…

iOS开发-keyboardType合集

1、UIKeyboardTypeDefault,常用于文本输入 2、UIKeyboardTypeASCIICapable,常用于密码输入 3、UIKeyboardTypeNumbersAndPunctuation,和上一个键盘互相切换 4、UIKeyboardTypeURL,适用于网址输入 5、UIKeyboardTypeNumberPad &am…

Android自定义实现漂亮的软键盘

工作中遇到了自定义软键盘的场景,虽然简单很快就实现了,但对个别的细节不太满意。 因为细节决定成败,所以细节之处也不能忽视。 先来张效果图吧: key的相关属性:row的相关属性:KeyboardView的相关属性&am…

ios键盘通知和自定义键盘

一.键盘通知 当文本View(如UITextField,UITextView, UIWebView内的输入框)进入编辑模式成为first responder时,系统会自动显示键盘。成为firstresponder可能由用户点击触发,也可向文本View发送becomeFirstResponder消息触发。当文本视图退出first respon…

android实现仿真键盘(KeyboardView适配)

原生的键盘布局声明了deprecated被废弃,虽然可以使用但明显不合需求。 /*** deprecated This class is deprecated because this is just a convenient UI widget class that* application developers can re-implement on top of existing public API…

C#制作软键盘

本文下载地址:https://pan.baidu.com/s/1ubpeTwuQvAPNlC4QLDpp8w 提取码:1234 c#制作软键盘,先来个图。 上面这个图是制作的最终结果显示。 在制作键盘的时候,总体来说还是比较简单的,只有几个地方比较复杂一点。布…

C#自定义键盘

C#自定义键盘 一、创建自定义键盘DLL文件 1、新建一个类库 2、在类库项目中添加用户控件类 3、在用户控件上添加键盘需要的控件 4、添加如下代码 using System; using System.Collections.Generic; using System.ComponentModel; using System.Drawing; using System.Da…

IOS控件系列--优雅的表情键盘设计(扩展性好)

本控件效果如下图所示: 本控件设计的几个原则 : 1.扩展性好,代码不冗余。 2.逻辑清晰。 3.回调接口清晰。 4.移植性好。 首先来讨论下本控件的扩展性: 效果图给出的是3行7列。如果这个行列因子可控,起码可以应付…

坤音键盘(ikun专用)

坤音键位说明 (下图第一个字母对应的是26键的键位,想听哪个按哪个。后面的数字代表时长,单位:秒) 在右下角托盘里面可以右键关闭 ps:执行后桌面会出现一个ikun精灵,只要找一个能输入内容的地方…

Android自定义软键盘的实现

先看界面布局文件 <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas.android.com/apk/res/android"android:layout_width"fill_parent"android:layout_height"fill_parent"a…