定时器&PWM练习

本文介绍了如何使用STM32的定时器发送'hello windows!'并通过串口通信,同时配置定时器控制LED灯进行2秒周期的闪烁。此外,还展示了如何通过TIM3和TIM4输出PWM波形,实现双LED呼吸灯效果。详细配置包括时钟源、IO口、中断、时钟树,并提供了代码示例。
摘要由CSDN通过智能技术生成

使用定时器发送hello windows 以及控制LED灯闪烁

一、需求分析

之前作业中的延时功能都是通过循环、delay/Hal_delay函数等实现,本次作业通过定时器Timer方式实现时间的精准控制,相当于给CPU上了一个闹钟,CPU平时处理其它任务,当定时时间到了以后,处理定时相关的任务。请设置一个5秒的定时器,每隔5秒从串口发送“hello windows!”;同时设置一个2秒的定时器,让LED等周期性地闪烁。

二、软件配置

2.1新建工程,进行基本配置。

通过点击“ACCESS TO MCU SELECTOR”来创建一个新的工程:
芯片选择“STM32F103C8”
在这里插入图片描述
打开外部时钟,点击“System Core”,选择RCC,在右侧弹出的菜单栏中选择“Crystal/Ceramic Resonator”。
在这里插入图片描述
选择调试接口,点击“System Core”,选择SYS。,在右侧弹出的菜单栏中选择“Serial Wire”。
在这里插入图片描述

2.2配置IO输出口

点击PA2,选择GPIO_Output
在这里插入图片描述

2.3 配置定时器

在目录Timers下点击TIM2和TIM3,将Clock Source时钟源选择为Internal Clock内部时钟,设置分频系数为71,向上计数模式,计数周期为5000。
在这里插入图片描述
TIM3同上设置

注意:分频系数虽然是71,但系统处理的时候会自动加上1,所以实际进行的是72分频。由于时钟一般会配置为72MHZ,所以72分频后得到1MHZ的时钟;1MHZ的时钟,计数5000次,得到时间5000/1000000=0.005秒;也就是每隔0.005秒定时器2会产生一次定时中断

2.4 配置中断

点击NVIC,勾选TIM2的中断
在这里插入图片描述

然后点击Code generation,勾选TIM2的中断优先级
在这里插入图片描述
在目录Connectivity下点击USART1,将Mode改为异步通信Asynchronous

在这里插入图片描述

2.5 配置时钟

点击Clock,将HCLK改为72,点击回车
在这里插入图片描述

2.6项目配置

参照之前实验步骤进行配置

https://blog.csdn.net/Porpoise_/article/details/127303667?spm=1001.2014.3001.5501

三、代码修改

3.1定时器启动代码

将代码放在主函数ma

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值