嵌入式学习——使用定时器同时实现串口通信和LED流水灯

本文介绍了如何使用STM32的定时器同时实现串口通信(每隔5秒发送“hello windows!”)和LED流水灯(每隔2秒闪烁)。通过STM32CubeMX配置定时器、中断和串口,详细讲解了配置过程与代码实现,适合嵌入式初学者学习。
摘要由CSDN通过智能技术生成

嵌入式学习——使用定时器同时实现串口通信和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 定时器编程流程

时钟配置:时钟源、分频系数

功能配置:计数模式、重装载值、计数值清零

定时器使能

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值