六、2 写PWM代码(函数介绍、呼吸灯代码)

目录

一、1、步骤

2、函数介绍

3、外设引脚和GPIO引脚的复用关系(引脚定义表)

二、1、呼吸灯

步骤

(1)初始化通道

1)输出比较模式

2)输出比较极性

(2)配置GPIO

(3)启动定时器

(4)计算CCR、ARR、PSC

(5)在运行过程中不断更改占空比(也就是更改CCR的值),实现呼吸灯

附加:重映射的使用


一、1、步骤

(1)RCC开启时钟(TIM外设、GPIO外设)

(2)时钟源选择和配置时基单元

(3)配置输出比较单元(CCR的值、输出比较模式、极性选择、输出使能)(时基单元直接到输出比较单元,不用配置NVIC)

(4)配置GPIO(把PWM对应的GPIO口初始化为复用推挽输出的配置)

(5)运行控制,启动计数器

2、函数介绍

3、外设引脚和GPIO引脚的复用关系(引脚定义表)

重映射(配置重映射用AFIO来完成,文章末尾有介绍)

二、1、呼吸灯

步骤

1)开启TIM时钟,选择时基单元的时钟,配置时基单元(初始化时基单元)

2)输出比较初始化(初始化通道)

3)配置GPIO

4)TIM使能(开启定时器)

(1)初始化通道

需要初始化哪个通道,就调用哪个函数

不同的通道对应的GPIO口不一样

PA0 口对应第一个输出比较通道

TIM2是通用定时器,把需要用到的参数列出就行,

注意:但用不到的参数就没有初始值,当将 TIM2 改成 TIM1(高级定时器)时可能会导致高级定时器输出PWM出现问题。为了避免出现问题,①要么将结构体的所有成员都配置完整(没用的也配置一下),②要么就先给结构体成员都附一个初始值,再修改部分结构体成员。

方法②

1)输出比较模式

输出比较模式,输出比较极性,输出状态(输出使能),设置CCR寄存器值

2)输出比较极性

(2)配置GPIO

GPIO输出模式要用复用推挽输出

推挽输出引脚的控制权来自输出数据寄存器

复用推挽输出 可将引脚控制权交给片上外设

这里的片上外设引脚连接的是TIM2的CH1通道

(3)启动定时器

(4)计算CCR、ARR、PSC

(5)在运行过程中不断更改占空比(也就是更改CCR的值),实现呼吸灯

附加:重映射的使用

选部分重映射1 或完全重映射

将GPIO中的Pin_0改成Pin_15

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

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

相关文章

肆[4],VisionMaster全局触发测试说明

1,环境 VisionMaster4.3 2,实现功能 2.1,全局触发进行流程控制执行。 2.2,取像完成,立即运动到下一个位置,同步进行图片处理。 2.3,发送结果的同时,还需要显示图像处理的痕迹。 …

H616设计时候存在的问题

1.存在大量孤铜的问题: 这种情况是绝对不允许的,但是GBA焊盘打大量的过孔会出现很多这样的孤铜: 解决办法: 像这种出现大量重复焊盘的,用导线连接起来,之后铺铜形成铜皮,再在这个小铜皮上面打…

全网首创!基于GaitSet的一种多人步态识别方法公示

有源代码V细聊,可商用/私用/毕设等:NzqDssm16 🍉1 绪论 经过相关研究确认,步态识别是足以达到应用级别的生物识别技术,在现代社会中自始至终都存在着广泛的应用前景。之所以迟迟没有普及,主要是实…

【Oracle 进阶之路】Oracle 简介

一、简述 Oracle Database,又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统。它是在数据库领域一直处于领先地位的产品。可以说Oracle数据库系统是世界上流行的关系数据库管理系统,系统可移植性好、使用方便、功能强&…

华为ensp中链路聚合两种(lacp-static)模式配置方法

作者主页:点击! ENSP专栏:点击! 创作时间:2024年4月26日11点54分 链路聚合(Link Aggregation),又称为端口聚合(Port Trunking),是一种将多条物理…

【编程工具使用技巧】VS如何显示行号

💓 博客主页:倔强的石头的CSDN主页 📝Gitee主页:倔强的石头的gitee主页 ⏩ 文章专栏:《编程工具与技巧探索》 期待您的关注 目录 引言 一、VS编译器行号显示的基本步骤 1.打开VS与项目 2.进入选项设置 3.找到并…

【Linux】远程连接Linux虚拟机(MobaXterm)

【Linux】远程连接Linux虚拟机(MobaXterm) 零、原因 有时候我们在虚拟机中操作Linux不太方便,比如不能复制粘贴,不能传文件等等,我们在主机上使用远程连接软件远程连接Linux虚拟机后可以解决上面的问题。 壹、软件下…

成为git砖家(5): 理解 HEAD

文章目录 1. git rev-parse 命令2. 什么是 HEAD2.1 创建分支当并未切换, HEAD 不变2.2 切换分支,HEAD 改变2.3 再次切换分支, HEAD 再次改变 3. detached HEAD4. HEAD 表示分支、表示 detached HEAD 有什么区别?区别相同点 5. HEA…

现在有什么赛道可以干到退休?

最近,一则“90后无论男女都得65岁以后退休”的消息在多个网络平台流传,也不知道是真是假,好巧不巧今天刷热点的时候又看到一条这样的热点:现在有什么赛道可以干到退休? 点进去看了几条热评,第一条热评说的…

邮箱收不到验证码邮件,如何调整邮箱设置?

邮箱收不到验证码邮件的原因?邮箱被拦截的解决策略? 有时用户会遇到邮箱收不到验证码邮件的问题,这不仅影响用户体验,还可能带来安全隐患。AokSend将探讨为什么会出现邮箱收不到验证码邮件的问题,并提供调整邮箱设置的…

哪家培训机构PMP考试通过率高,PMP考试有原题吗?

PMP的官方通过率数据并未公布,培训机构公布的通过率仅供参考。通常情况下,培训机构宣传的通过率不会低于90%,但这并不意味着他们有内部的原题。PMI官方的题库是不公开的,因此机构也无法获取到原题。 然而,由于机构能够…

使用 WebSocket 实现实时聊天

个人名片 🎓作者简介:java领域优质创作者 🌐个人主页:码农阿豪 📞工作室:新空间代码工作室(提供各种软件服务) 💌个人邮箱:[2435024119qq.com] &#x1f4f1…

PHP:连接钉钉接口-钉钉回调事件,本地测试数据

前置数据参考 数据说明:参见官方文档回调事件消息体加解密 - 钉钉开放平台 (dingtalk.com) URL后面带的参数: signature=5a65ceeef9aab2d149439f82dc191dd6c5cbe2c0&timestamp=1445827045067&nonce=nEXhMP4r Post参数: { "encrypt":"1a3NB…

猫咪食欲不振?快来看看开胃主食罐!

夏天到了,天气太热了,不仅我没什么胃口,家里的猫主子也食欲大降,真是把我愁坏了。 我家之前喂德罐为主,小李子、交响乐金罐都囤了不少。但德罐都是巨无霸包装,200g和400g规格的大罐头,开了一餐…

OCCT使用指南:Foundation Classes

1、介绍 本手册解释了如何使用Open CASCADE Technology (OCCT) Foundation Classes。它提供了关于基础类的基础文档。有关基础类及其应用的高级信息,请参阅我们的电子学习和培训产品。 基础类提供各种通用服务,如自动动态内存管理(通过句柄操…

python import:跨文件夹导入模块

python 中 import 语句可以往当前 py 文件中导入外部模块,从而使用外部模块中的函数与类。 如果想要导入 python 内置模块和 pip install 安装的模块,可以直接使用 “import …” 的形式导入。 如果想要导入自己本地定义的模块(即跨文件夹导入…

设置浏览器ie兼容模式

点击设置 设置IE模式

Animation Clips

动画剪辑是Unity用来表示对象运动姿态的基础资源,你可以从模型文件中导入动画剪辑,也可以在Unity内部创建简单的动画剪辑。 Import Animation From Model 在导入时只需要确保模型的Animation选项卡中的Import Animation是被激活的,对于没有动…

华为诺亚发布无限上下文大模型,超越SoTA 4.3%

你的大语言模型是不是也患上了"长文健忘症"?当使用大模型遇到长上下文时总是会出现词不达意?别担心,LLM界的"记忆大师"来啦!华为诺亚方舟实验室最新推出的EM-LLM模型,就像是给大模型装上了"超…

典型二进制翻译系统---用户级翻译

目录 QEMU MDT HQEMU 补充 Valgrind 包括 CrossBit 补充 MTCrossBit Strata-ARM Box86 HQEMU SymQEMU QEMU 静态二进制翻译器 是一个开源的多平台的虚拟器,能够在软件中模拟一台机器 KVM(Kernel-based Virtual Machine)是 Linu…