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

嵌入式第六周作业任务二--PWM呼吸灯

1.编写所需头文件

屏幕截图 2025-10-19 002541
2.定义LED的引脚

屏幕截图 2025-10-19 002726
3.定义呼吸灯参数
分别定义呼吸灯的PWM周期,呼吸步进值以及呼吸更新间隔(ms)。

屏幕截图 2025-10-19 002902
4.定义全局变量
分别定义TIM3 PWM占空比,TIM4 PWM占空比(从中间开始,与TIM3错开),TIM3方向(1增加,0减少)以及TIM3方向(1增加,0减少)。

屏幕截图 2025-10-19 003119
5.声明函数

屏幕截图 2025-10-19 003147
6.编写GPIO配置函数
分别配置使能GPIO时钟,配置板载LED (PC13) - 推挽输出以及配置外接LED (PA6) - 复用推挽输出 (TIM3_CH1)。

屏幕截图 2025-10-19 003353
7.编写TIM3配置函数
分别配置使能TIM3时钟以及配置定时器基础(包括自动重装载值,预分频器,时钟分频和向上计数模式)。

屏幕截图 2025-10-19 003612
8.编写TIM4配置函数
分别配置使能TIM4时钟以及配置定时器基础(包括自动重装载值,预分频器,时钟分频和向上计数模式)。

屏幕截图 2025-10-19 003715
9.初始化TIM3 PWM
分别配置PWM模式(包括PWM模式1,输出使能,输出极性高和初始占空比为0)和配置通道1。

屏幕截图 2025-10-19 003925
10.初始化TIM3 PWM
分别配置PWM模式(包括PWM模式1,输出使能,输出极性高和初始占空比为50%)和配置通道1。
11.更新PWM占空比函数
首先更新TIM3占空比 (外接LED),然后更新TIM4占空比 (板载LED),最后设置新的占空比。

屏幕截图 2025-10-19 021323
12.设计简单延时函数

屏幕截图 2025-10-19 021412
13.编写main主函数
依次初始化系统时钟,配置GPIO,配置定时器,初始化PWM,启动定时器,启动PWM输出,更新PWM占空比以及延时。

屏幕截图 2025-10-19 021702
硬件连接
板载LED: PC13(固定连接)
外接LED: 可以连接到PA6(TIM3_CH1)或PB6(TIM4_CH1)
程序说明

  1. 硬件配置
    TIM3_CH1: PA6 → 驱动外接LED
    TIM4_CH1: 通过软件控制PC13 → 驱动板载LED

  2. 呼吸灯原理
    PWM频率: 1kHz (1MHz / 1000 = 1kHz)
    占空比在0-1000范围内变化。
    两个LED呼吸相位错开,产生交替呼吸效果。

http://www.zskr.cn/news/23885.html

相关文章:

  • 2022 ICPC Shenyang
  • tryhackme-预安全-网络安全简介-进攻性安全简介-01
  • 复矩阵的奇异值分解(SVD)
  • Codeforces Round 496 (Div. 3) F. Berland and the Shortest Paths
  • OI 笑传 #20
  • 2025.10.18——1黄
  • 10.18总结
  • 10.17总结
  • 软考中级学习总结(2)
  • [buuctf]bjdctf_2020_router
  • 吴恩达深度学习课程一:神经网络和深度学习 第三周:浅层神经网络(二)
  • C++动态多态原理分析
  • Java基础——初识Math类,基本运算符,自增自减运算符,逻辑运算符,位运算符,三元运算符
  • ENC28J60
  • 第九章-实战篇-运维杰克
  • 硬件基础知识
  • Channel小结
  • bridge 一般是 网络桥接模块。
  • abc428
  • 华为hcip总纲
  • haiku
  • Asp.Net Core 解决使用 Docker调试时出现“准备容器时发生了一个非关键性错误。项目将继续正常工作。错误为: 路径中具有非法字符。”
  • [Linux] NeoVim安装和Lazyvim配置
  • ABC 随笔
  • 大数据分析基础及应用案例:第三周学习报告 ——Matplotlib 学习报告
  • 2025.10 训练日志
  • 矩阵的秩和逆
  • 全球AI推理扩展技术解析
  • 乱七八糟的知识点
  • 自监督学习在医疗AI中的技术搭建路径分析(下)