嵌入式实验---实验三 定时器实验

一、实验目的

1、掌握STM32F103定时器程序设计流程;

2、熟悉STM32固件库的基本使用。

二、实验原理

1、使用SysTick定时方式控制LED闪烁;

2、使用通用定时器产生PWM脉冲,通过调整占空比实现两个目标:

(1)连接到STM32F103上的LED亮度从暗到亮、再从亮到暗,一次循环,实现呼吸灯效果;

(2)使用数字示波器查看PWM的波形图。

三、实验设备和器材

电脑、Keil uVision5软件、Proteus 8 Professional软件

四、实验内容和步骤

4.1 代码开发

按照书本中实验流程在Keil中完成LED闪烁和呼吸灯实验的代码开发;

4.2 原理图设计

在Proteus中完成原理图的设计,如图3所示为LED闪烁实验原理图;图4所示为呼吸灯实验原理图。

图3 LED闪烁实验原理图

图4 呼吸灯实验原理图

五、实验记录和实验结果

5.1 实验效果记录(附照片即可)

5.2 实验效果说明

LED闪烁实验效果说明:

  1. LED以固定的频率或模式(如1秒闪烁一次)交替亮灭。

  1. 可以通过修改代码中的延时时间或使用定时器来调整LED的闪烁频率。

呼吸灯实验效果说明:

  1. LED的亮度呈现出由低到高再由高到低的变化,类似于呼吸的效果。

  1. 从数字显示器中可以看出,PA7输出的PWM脉冲,PWM的占空比在发生渐变,LED灯的亮度也会发生变化。

  1. 可以通过调整PWM的占空比和周期来改变LED的呼吸速度和范围。

六、实验预习要求

  1. 实验前认真阅读本实验指导;
  2. 熟悉书本中相关操作及相关器件。
  3. 完成5.1和5.2内容。

七、思考题

1. 定时器常用的功能有哪些

  1. 计时功能:用于简单的时间测量和计算,例如厨房用计时、运动比赛计时等。

  1. 闹钟功能:定时器可以设置在特定时间响铃或震动,用作闹钟提醒。

  1. 倒计时功能:设置一个特定的时间段,倒计时器会逆向计算时间,直到时间结束发出提醒。

  1. 重复功能:一些定时器允许设置重复功能,比如每天同一时间提醒。

  1. 多个计时器:有些高级定时器可以同时运行多个计时器,方便管理多个任务或事件。

  1. 定时开关功能:例如定时开关灯、电视等电子设备,节省能源。

  1. 自动关机功能:设定电脑或手机等设备在特定时间自动关机,省电和定时任务。

  1. 计时器历史记录:记录过去的计时或倒计时,以便回顾和分析。

2、使用定时器功能的配置流程

  1. 选择定时器和时钟配置:首先确定使用的定时器(如TIM1、TIM2等)以及其时钟源,通常是外部晶振或内部时钟源。

  1. 定时器时钟初始化:配置定时器的时钟,确定其工作频率。这一步骤确保定时器能够以正确的时钟频率运行。

  1. 定时器初始化:配置定时器的基本参数,如计数模式(向上、向下或双边),计数器的预分频因子(用于调整定时器时钟的频率),自动重装载寄存器(ARR)的值(决定定时器的溢出周期)等。

  1. 配置定时器中断:如果需要使用定时器的中断功能,配置中断优先级、使能定时器中断等。
  2. 启动定时器:最后,启动定时器开始计数。在STM32中,通过设置定时器的使能位(CR1寄存器的CEN位)来启动定时器。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/31149.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

RPM命令和YUM命令

目录 一、RPM软件包 1.1、RPM概述 1.2、查询已安装的rpm软件信息 1.3、查询未安装的 RPM 软件包文件中信息 1.4、安装、升级、卸载 RPM 软件包 二、YUM常规命令 三、手动配置Apache(http)服务 3.1、前提条件 3.2、开始配置 3.3、开启验证服务 …

GitHub爆赞!终于有大佬把《Python学习手册》学习笔记分享出来了

这份笔记的目标是为了给出一份比较精炼,但是又要浅显易懂的Python教程。《Python学习手册》中文第四版虽然比较简单,但是措辞比较罗嗦,而且一个语法点往往散落在多个章节,不方便读者总结。 我在做笔记时,将一个知识点…

PFC 离散元数值模拟仿真技术与应用

近几年,随着计算能力的提高和算法的优化,离散元仿真技术得到了快速发展,并在学术界产生了大量研究成果。在 PFC 离散元计算中无需给定材料的宏观本构关系和对应的参数,这些传统的参数和力学特性在程序中可以自动得到。据调查&…

深入了解常用负载均衡软件

在构建高性能、高可用的分布式系统时,负载均衡技术扮演着至关重要的角色。它通过合理分发网络请求到后端服务器集群,从而有效提升系统吞吐量、减少响应延迟、并保障系统的稳定运行。本文将介绍几种常用的负载均衡软件,包括它们的优缺点、应用…

Gartner发布2024年人工智能技术成熟度曲线:29项决定人工智能领域发展方向的前沿和趋势性技术

人工智能投资已达到新高,重点是生成式人工智能,但在大多数情况下,该技术尚未实现预期的商业价值。这项研究通过分析各种人工智能创新(其中许多创新正在快速发展),帮助人工智能领导者确定其他值得投资的技术…

VScode开发ARM环境搭建

1. vscode安装 直接访问官网: Visual Studio Code - Code Editing. Redefined 2. 安装插件 2.1. 安装Embedded IDE 2.2. 安装Cortex-debug 3. 工程初始化 3.1. 导入现有工程(推荐) 3.2. 或可创建新的工程 3.2.1. 选择Cortex-M项目 指定项目名称&…

Qemu虚拟机在线迁移到VMware

libvirt版本:libvirt-10.0.0qemu版本:qemu-8.2.0 在生产环境中,大多数的场景是 vmware 虚拟机迁移到 qemu 环境,一般是通过关机然后导出、导入磁盘镜像来实现。 如果要将 qemu 环境虚拟机迁移到 vmware 怎么办呢?要求…

使用 Python 进行测试(5)测试的类型

总结 和我一起唱! 冒烟测试,让你快速失败; 回归测试,不打破过去; 健全性检查,保留所拥有; 集成测试,处理副作用; 端到端,永无尽头! 回测&#xf…

Django使用django-apscheduler实现定时任务

定时任务可以在后台定时执行指定的代码,避免了很多人为操作。下面是在Django项目中如何使用定时任务的具体操作流程。 我在这里使用的 django-apscheduler库来实现定时任务。 一、安装 django-apscheduler pip install django-apscheduler二、在项目的setting.py…

仿真模拟--telnet服务两种认证模式(自作)

自己做的笔记,有问题或看不懂请见解一下~ 目录 两个路由器间实现telnet服务(password认证模式) server client 两个路由器间实现telnet服务(aaa认证模式) server client 改名 tab键补齐 不会就扣问号 ? save 两个路由器间实现telnet服务…

有哪些去手写免费的软件?软件介绍

有哪些去手写免费的软件?在数字化时代,高效处理文字信息已成为学习和工作中不可或缺的一环。对于需要频繁处理手写试卷、笔记的用户来说,一款好的去手写软件无疑能大大提升效率。今天,我们就来推荐三款免费的去手写软件&#xff0…

CentOS 8.5 - 配置ssh的免密登录

文章目录 生成ssh密钥公钥内容放入服务器 生成ssh密钥 在本地主机安装 ssh工具,并生成公钥、私钥。 # 命令行输入 ssh-keygen -r rsa# 会在当前用户的家目录下生成一个.ssh目录公钥内容放入服务器 将上一步生成的id_rsa.pub公钥的内容复制到远程服务器 # 编辑文…

虚拟机安装JDK11操作教程

1、新建/usr/java目录 mkdir /usr/java 2、将jdk-11文件上传/usr/java目录 3、解压jdk-11文件 tar -zxvf jdk-11_linux-x64_bin.tar.gz 4、编辑配置文件,配置环境变量 vi /etc/profile 在打开的文件末尾添加 export JAVA_HOME/usr/java/jdk-11 export JRE_HOM…

对30年国债利率破2.5%的复盘反思

短期看,以月为维度,长端和超长端利率依然具有较强的向下突破的惯性;中期看,以季为维度,长端依然面临向下赔率不足的约束,但调整需要多重利空共振的契机。 短期看多,逢高配置”的四点逻辑 逻辑一…

linux——ansible实验

要求 0.进入servera进行准备工作,做一些清理 1)停止httpd服务,清除httpd软件包、配置文件、主页文件 2)清理/etc/hosts文件中的内容,只保留最上面默认的两行 (127.0.0.1和::1这两行) 1.根据之前…

短信内容关键字被拦截-阿里云通知类短信

通知类短信。地产、留学、招聘、交友、游戏等行业仅支持发送验证码。 注意不要有字眼,替换为相似的词语。否则拦截率很高

如何设计一个点赞系统

首先我们定义出一个点赞系统需要对外提供哪些接口: 1.用户对特定的消息进行点赞; 2.用户查看自己发布的某条消息点赞数量以及被哪些人赞过; 3.用户查看自己给哪些消息点赞过; 这里假设每条消息都有一个message_id, 每一个用户都…

百度安全X盈科全球数据合规服务中心:推进数据安全及合规智能化创新领域深化合作

6月19日,百度安全与盈科全球数据合规服务中心举行合作签约仪式,双方将充分发挥各自优势,在数据安全及合规智能化创新领域深化合作,在遵守国家法律法规和顺应市场规则的前提下,推动地方经济社会发展,促进企业…

(3) cmake编译多个cpp文件

文章目录 概要整体代码运行结果 概要 上一节中实现了对单个cpp文件用cmake编译。这一节升级一下 整体代码 main.cpp #include <iostream> #include "person.h"using namespace std;int main() {person me person("langdaoliu", 28, "engin…

2024考古之还在用原始JDBC开发 手搓 案例 实现一个模块的增删改

JDBC案例 将来如果完成的话 就代表对JDBC里面的知识点全部融会贯通了 其实就是对数据的增删改查 我们入门做不出来前端的内容 很正常 准备环境 建表 use mybatis;create table tbl_brand (id int primary key auto_increment,brand_name varchar(20),company_name varcha…