当前位置: 首页 > news >正文

实验二 呼吸灯功能实验

一、实验目的

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

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

二、实验要求

2.1 实验原理

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

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

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

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

2.2 实验软件

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

三、实验过程

3.1 代码开发

       按照书本中实验流程在Keil中完成中断实验的代码开发;

3.2 原理图设计

       在Proteus中完成原理图的设计,下图为呼吸灯实验原理图。

图1 呼吸灯实验原理图

四、实验记录与总结

4.1 核心代码理解

       本次实验核心需求在于利用PA7引脚控制LED实现呼吸灯效果。本质在于控制PA7端口生成PWM波形,并自动调整PA7输出的PWM波的占空比展示LED“呼吸”的效果。经查看数据手册得知PA7端口可复用TIM3的通道2,因此可以利用PA7的TIM3通道2的输出比较复用功能生成PWM波。

       因此重点在于对PA7复用的TIM3_CH2的配置。首先必然是端口以及TIM3的基本初始化,查看参考手册容易得知TIM3挂载在APB1总线上,GPIOA挂载在APB2总线上,因此开启二者时钟代码如图2所示。

图2 时钟配置

       然后对PA7端口进行配置,由于使用复用定时器功能,且要输出PWM波,因此配置为复用推挽输出模式即可,代码如图3所示。

图3 端口配置

       接着就是对TIM3的输出比较功能的核心配置。本次使用的是TIM3的通道2,使用其输出比较功能生成PWM波形,因此重点在于使用的计数器频率以及自动重装载值ARR的设定。一般PWM生成使用100作为ARR即可,本次使用10MHz作为系统时钟,为方便计算使用10分频后的时钟作为计数器时钟频率即1us,最后产生一次PWM周期使用0.1ms可以躲避视觉暂留效应。然后计数方式一般为向上计数、高电平为有效电平使用PWM模式1等即可,其他配置一般非必要,最后使能TIM3即可,相关代码如图4所示。

图3 TIM3_CH2配置

       最后主函数进行相关初始化并循环中不断高到低、低到高调整占空比即可基本实现LED呼吸灯效果,占空比调整逻辑如图4所示。

图4 占空比调整

4.2 实验结果

       在Keil5中编译代码生成hex文件后,进入proteus8仿真环境加载对应hex文件后点击仿真,现象如图5所示。

图5 proteus仿真现象

4.3 问题与想法

1、问题

       在代码无致命问题时,对于这种与系统时钟强相关的仿真运行而言,示波器显示PWM占空比变化情况出现逐渐偏离同步变化的情况。

2、想法

       个人感觉,尽管proteus8软件仍在更新,但对于STM32单片机的仿真效果再一定条件小仍存在不足与缺陷,也可能受proteus版本影响。


笔者小白,能力有限,以上内容难免存在不足和纰漏,仅供参考,各位阅读时请带着批判性思维学习,遇到问题多查查。同时欢迎各位评论区批评指正。谢谢。

http://www.dtcms.com/a/491480.html

相关文章:

  • 动力 网站建设珠海专业网站建设费用
  • 博客系统测试
  • 高德地图电子围栏/地图选区/地图打点
  • 自己动手建设网站过程dede珠宝商城网站源码
  • Git的分支
  • 基础拓展
  • 手机微网站建设河南网站建设的详细策划
  • 剧本杀小程序系统开发:内容生态与商业模式的双轮驱动
  • 网站备案表不会写引流网站怎么做
  • 【系统分析师】写作框架:数据灾务技术与应用
  • 香港云服务器域名无法访问的原因
  • 荆门网站建设服务上海网站制作网络推广方法
  • 系统那个网站好什么是网站平台开发
  • 网站管理后台地址深圳做网站排名
  • 软件测试及 AI+测试
  • oj字符串,求助讨论帖
  • 鸿蒙app开发中 class类中的 访问修饰符和静态修饰符 等这些命名的含义 以及用法
  • 大模型-AIGC技术在文本生成与音频生成领域的应用
  • 国内产品网站1688利用腾讯云建设网站
  • 下载免费网站模板下载移动网站建设机构
  • 公司网站怎么建温泉网站建设
  • error: can‘t find Rust compiler
  • 关于力扣第 167 场双周赛的赛后总结 第三四题
  • 网站开发h5技术两学一做网站源码
  • SpringBoot-自动配置原理
  • AI应用开发001-Conda和Jupyter Lab介绍
  • 在 Android Shell 终端上直接运行 OPENPPP2 网关路由配置指南
  • debug - MDK - arm-none-eabi - 从MDK工程做一个makefile工程出来
  • 郑州外贸网站建设商家内网网站开发报价
  • xxl-job pg数据库适配