文章目录
- 一、定时器相关介绍
-
- 1.定时器分类
- 2.定时器功能
- 3.定时器原理
- 二、关于STM3相关设置
-
- 1.项目创建
- 2.设置RCC
- 3.设置SYS
- 4.配置端口
- 5.配置定时器
- 6.配置中断
- 7.设置时钟
- 8.生成项目
- 三、关于keil代码编写
-
- 1.定时器启动代码
- 2.输出目标代码
- 3.在main.c文件中添加代码
- 4.编译运行
- 四、电路连接及烧录
-
- 1.电路连接
- 2.烧录
- 五、总结
- 六、参考链接
一、定时器相关介绍
1.定时器分类
分为三类:
TIM1和TIM8是高级定时器
TIM2-TIM5是通用定时器
TIM6和TIM7是基本的定时器
定时器都是16位的,它们的计数器的类型除了基本定时器TIM6和TIM7都支持向上,向下,向上/向下这3种计数模式
计数器三种计数模式
向上计数模式:从0开始,计到arr预设值,产生溢出事件,返回重新计时
向下计数模式:从arr预设值开始,计到0,产生溢出事件,返回重新计时
中央对齐模式:从0开始向上计数,计到arr产生溢出事件,然后向下计数,计数到1以后,又产生溢出,然后再从0开始向上计数。(此种技术方法也可叫向上/向下计数)
2.定时器功能
2.1.基本定时器(TIM6,TIM7)的主要功能:
只有最基本的定时功能,。基本定时器TIM6和TIM7各包含一个16位自动装载计数器,由各自的可编程预分频器驱动。
2.2.通用定时器(TIM2~TIM5)的主要功能:
除了基本的定时器的功能外,还具有测量输入信 的脉冲长度( 输入捕获) 或者产生输出波形( 输出比较和PWM)
2.3.高级定时器(TIM1,TIM8)的主要功能:
高级定时器不但具有基本,通用定时器的所有的功能,还具有控制交直流电动机所有的功能,你比如它可以输出6路互补带死区的信 ,刹车功能等等。
3.定时器原理
(1)定时器计时其实是通过计数来实现的。 定时器内部有一个计数器,这个计数器根据一个时钟(这个时钟源来自于ARM的APB总线 66MHz,然后经过时钟模块内部的分频器来分频得到)来工作。每隔一个时钟周期,计数器就计数一次,定时器的时间就是计数器计数值×时钟周期。
(2)定时器内部有1个寄存器TCNT,计时开始时我们会把一个总的计数值(初值)放入TCNT寄存器中,然后每隔一个时钟周期(假设为1ms)TCNT中的值会自动减1(硬件自动完成,不需要CPU软件去干预),直到TCNT中减为0的时候,TCNT就会触发定时器中断。
(3)定时时间是由2个东西共同决定的:一个是TCNT中的计数值,一个是时钟周期,两者的乘积即为最终定时的时间。
二、关于STM3相关设置
1.项目创建
2.设置RCC
4.配置端口
7.设置时钟
3.在main.c文件中添加代码
设置中断回调函数:
四、电路连接及烧录
1.电路连接
LED长脚——3V3
LED短脚——PA6
TXD——A10
RXD——A9
GND——GND
3V3——3V3
2.烧录
2.1.打开mcuisp,开始调试:
五、总结
在此次通过定时器Timer方式实现串口发送“hello windows!”,同时让LED灯周期性闪烁的实验中,认识到了定时器的相关原理和作用,同时在电路连接时,需要注意连线的问题,不然实验可能失败。
六、参考链接
1.https://blog.csdn.net/aricchen77/article/details/112298126
2.https://blog.csdn.net/jack123345667/article/details/108100283
3.http://www.mcublog.cn/stm32/2021_01/stm32cubemx-dingshiqi-led/
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!