【STM32+HAL库】---- 通用定时器PWM输出实现呼吸灯

news/2025/1/15 8:12:40/
硬件开发板:STM32G0B1RET6
软件平台:cubemax+keil+VScode

1 新建cubemax工程

1.1 配置系统时钟RCC

image

1.2 配置定时器

找到LED所对应的引脚PA5,选择TIM2_CH1模式
image
TIM2中,时钟源选择内部时钟Internal Clock,通道1选择PWM输出PWM Generation CH1,设置预分频系数63和重装载值999,此时对应时间周期是1ms,占空比设置为0即可,后续通过软件进行修改
image

2 代码

2.1 定义变量

uint16_t pulse=0;   /*占空比,重装载值设置为999*/
uint8_t flag=1;     /*LED标志位,用于判断是渐亮还是渐灭*/

2.2 mian函数

int main(void)
{HAL_Init();SystemClock_Config();MX_GPIO_Init();MX_TIM2_Init();HAL_TIM_PWM_Start(&htim2,TIM_CHANNEL_1);  /*启动定时器2通道1的PWM输出*/while (1){if (flag==1)    /*执行LED渐亮*/{if (pulse<1000){pulse+=50;   /*占空比增大*/__HAL_TIM_SET_COMPARE(&htim2,TIM_CHANNEL_1,pulse);    /*修改占空比*/HAL_Delay(100);}elseflag=0;    /*切换为渐灭模式*/}else       /*执行LED渐灭*/{pulse-=50;    /*占空比减小*/__HAL_TIM_SET_COMPARE(&htim2,TIM_CHANNEL_1,pulse);    /*修改占空比*/HAL_Delay(100);if (pulse==0){flag=1;    /*切换为渐亮模式*/}}}
}

http://www.ppmy.cn/news/1520659.html

相关文章

内置消息支持

内置消息支持 MATLAB 支持大量的 ROS 消息类型。本主题介绍了 MATLAB 如何通过描述消息结构、ROS 消息的限制以及支持的 ROS 数据类型来处理 ROS 消息。有关内置消息类型的完整列表&#xff0c;请参见本文末尾。 有关 ROS 2 消息的信息&#xff0c;请参见“使用基础 ROS 2 消…

uniapp布局

一. 如何让元素吸顶? position: sticky;top: 0; 注意&#xff1a;暂时仅支持作为list-view、sticky-section的子节点, sticky-header不支持css样式&#xff01;当一个容器视图设置多个sticky-header时&#xff0c;后一个sticky-header会停靠在前一个sticky-header的末尾处。

chrome 插件开发入门

1. 介绍 Chrome 插件可用于在谷歌浏览器上控制当前页面的一些操作&#xff0c;可自主控制网页&#xff0c;提升效率。 平常我们可在谷歌应用商店中下载谷歌插件来增强浏览器功能&#xff0c;作为开发者&#xff0c;我们也可以自己开发一个浏览器插件来配合我们的日常学习工作…

2-78 基于matlab-GUI的DTW算法语音识别

基于matlab-GUI的DTW算法语音识别&#xff0c;具有16页分析报告。能识别0-9数字&#xff0c;正确率90。预处理过程包括预滤波、采样和量化、分帧、加窗、预加重、端点检测等。经过预处理的语音数据进行特征参数提取。在训练阶段&#xff0c;将特征参数处理之后&#xff0c;每个…

算法题汇总

算法汇总 环形链表 https://leetcode.cn/problems/linked-list-cycle/ 反转链表 https://leetcode.cn/problems/reverse-linked-list/28 环形链表 II https://leetcode.cn/problems/linked-list-cycle-ii/ 快乐数 https://leetcode.cn/problems/happy-number/ 反转链表 II …

掌握SQL的“删除艺术”:如何使用DROP TABLE命令

掌握SQL的“删除艺术”&#xff1a;如何使用DROP TABLE命令 在数据库管理中&#xff0c;有时候我们需要彻底删除一个表&#xff0c;这可能是为了重新设计数据库结构&#xff0c;或者因为某些表不再需要。SQL 提供了 DROP TABLE 语句来实现这一功能。本文将详细介绍 DROP TABLE…

react 中three.js 模型渲染

npm install three import * as THREE from "three"; import { GLTFLoader } from "three/examples/jsm/loaders/GLTFLoader.js"; const mountRef useRef(null); useEffect(() > {// 创建渲染器 const renderer new THREE.WebGLRenderer(); const wi…

“解决MySQL容器启动后无法编辑文件的问题:实用指南“

前段时间拉取了个MySQL的容器节点&#xff0c;但是拉起之后发现居然编辑不了MySQL的配置文件&#xff0c;这是我的启动命令 docker run -itd -p 3310:3306 -e MYSQL_ROOT_PASSWORD12345678 --name slave2 f5f171121fa3 bash 下面总结下解决方法&#xff1a; 编辑docker file…