目录
一、定时器的介绍
1.定时器概念及作用
2.定时器的分类
(1)硬件定时器
(2)软件定时器
(3)系统滴答定时器(SysTick)
(4)实时时钟(RTC)
二、新建cubemx项目
1.选择芯片STM32F103C8T6
2. 配置RCC
3.配置SYS
4.配置IO。LED配置PA5
5. 设置定时器TIM2
6.配置NVIC
7.生成keil5工程文件
三、keil5工程中操作
1.在main.c中添加代码
2.编译并生成hex文件
四、电路连接
五、烧录
六、调试结果
编辑
七、心得总结
八、参考博客
一、定时器的介绍
1.定时器概念及作用
定时器的主要作用是产生一个时基,通俗的讲就是从某一时刻开始,经过一段指定的时间,触发一个中断或超时回调事件,可以在中断或者超时回调函数中处理数据。
定时器在嵌入式系统中是个基础服务,比如RTOS就要依赖SysTick提供时钟节拍去实现线程延时、线程时间片轮询调度等,定时器可以分软件定时器和硬件定时器,我们还经常听到SysTick,RTC实时时钟等,定时器在生活中的应用也很常见,比如闹钟。
2.定时器的分类
(1)硬件定时器
顾名思义,芯片本身提供的定时功能。一般是由外部晶振提供给芯片输入时钟,芯片向软件模块提供一组配置寄存器,接受控制输入,到达设定时间值后芯片中断控制器产生时钟中断。硬件 定时器的精度一般很高,可以达到纳秒级别,并且是中断触发方式,简言之,硬件定时器需要硬件资源支持产生稳定的时间基准。
(2)软件定时器
软件定时器的功能与硬件定时器类似,但是实现方式不同,软件定时器是由操作系统提供的一类系统接口,它构建在硬件定时器基础之上,使系统能够提供不受数目限制的定时器服务,一般使用SysTick作为基础时钟。
软件定时器是通过线程实现的而非中断实现,可能会被其它高优先级的线程打断,因此软件定时器只能用于对精度要求不高的场合,一般是毫秒级。
(3)系统滴答定时器(SysTick)
SysTick需要硬件支持,可以理解为一种简单的硬件定时器,SysTick定时器一般用于延时或作为RTOS中的系统时钟(心跳),实时系统中最小的时间单位就是SysTick定时器的中断周期,也就是1个tick。
(4)实时时钟(RTC)
RTC需要硬件支持,是一个独立的BCD定时器/计数器,主要作用是提供日历功能,不同的MCU,RTC特性可能也略有差异。以下是参数特性:
二、新建cubemx项目
1.选择芯片STM32F103C8T6
2. 配置RCC
3.配置SYS
4.配置IO。LED配置PA5
5. 设置定时器TIM2
6.配置NVIC
7.生成keil5工程文件
再点击GENERATE CODE,生成项目
三、keil5工程中操作
1.在main.c中添加代码
2.编译并生成hex文件
四、电路连接
3v3-3v3
GND-GND
A5-二极管正极;G-二极管负极
A9-RXD;A10-TXD
五、烧录
六、调试结果
七、心得总结
通过此次实验,对于中断以及定时器的使用的有了更深的理解和运用,另外,对于firetools的使用也更加熟练。可以用定时器来设置定时中断来方便使用,让中断重复发生,让程序可以更好的受到控制,达到我们想要的结果。其中uart中断和定时器的相互结合使用,将前面的知识串联了一遍,也让我对整个嵌入式的理解加深了不少。
八、参考博客
STM32CUBEMX_定时器控制LED闪烁 | MCU起航
HAL库中断方式进行串口通信_醉意丶千层梦的博客-CSDN博客_hal库串口接收中断