嵌入式学习——使用定时器同时实现串口通信和LED周期闪烁
目录
1、题目要求
之前作业中的延时功能都是通过循环、delay/Hal_delay函数等实现,本次作业通过定时器Timer方式实现时间的精准控制,相当于给CPU上了一个闹钟,CPU平时处理其它任务,当定时时间到了以后,处理定时相关的任务。请设置一个5秒的定时器,每隔5秒从串口发送“hello windows!”;同时设置一个2秒的定时器,让LED等周期性地闪烁。
准备:
stm32f103c8t6、STM32CubeMX、keil5、烧录软件、串口调试助手
下载链接请参考此博客:https://blog.csdn.net/qq_66144143/article/details/127309228
2、定时器介绍
2.1 定时器概念及作用
定时器顾名思义就是定时执行一个操作,在芯片中使用晶振作为计时单位,通过对晶振的计数来实现计时,当时间达到定时器设定的时长后,会跳入对应的函数执行对应的操作。常用的时间单位是毫秒,即一毫秒执行一次。
定时器的主要作用是产生一个时基,通俗的讲就是从某一时刻开始,经过一段指定的时间,触发一个中断或超时回调事件,可以在中断或者超时回调函数中处理数据。
2.2 定时器工作原理
1.定时器:计数器,时钟脉冲计数
2.工作原理:
(1)自动计数模式:在时钟条件下,系统自动计数到最大值溢出,代表一次定时完成
(2)调制计数模式:用户自定义定时时间,系统计时到自定义时间,代表一次定时完成
向上计数:向上计数到设定值后重新计数,周期循环,如图:
连续计数:向上计数到最大值后重新计数,周期循环,如图:
上/下计数:向上计数到设定值后,又从设定值向下计数,如图:
2.3 定时器分类
1.核内定时器
SysTick定时器:系统时钟滴答定时器(定时作用)。
- 可用作操作系统任务调度时间片
RTC:实时时钟
WatchDog:看门狗时钟,用于异常复位
2.外设定时器
基本定时器:定时作用,用作其他定时器功能的时基
通用定时器:输入捕获、输出比较、PWM(输出比较模式中的一种特例)
高级定时器:通用定时器、带死区控制的PWM、三路移相波形(三相电机控制)
2.4 定时器编程流程
时钟配置:时钟源、分频系数
功能配置:计数模式、重装载值、计数值清零
定时器使能