Stm32_标准库_4_TIM中断_PWM波形_呼吸灯

基本原理
在这里插入图片描述

PWM相关物理量的求法

在这里插入图片描述
在这里插入图片描述

呼吸灯代码

#include "stm32f10x.h"    // Device header
#include "Delay.h"TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStructure;
TIM_OCInitTypeDef TIM_OCInitStructuer;//结构体
GPIO_InitTypeDef GPIO_InitStructur;//定义变量结构体void GPIOA_Init(void){RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);GPIO_InitStructur.GPIO_Mode = GPIO_Mode_AF_PP;GPIO_InitStructur.GPIO_Pin = GPIO_Pin_0;		//GPIO_Pin_15;GPIO_InitStructur.GPIO_Speed = GPIO_Speed_50MHz;GPIO_Init(GPIOA, &GPIO_InitStructur);
}void PWM_Init(void){ //pwm波形配置TIM_OCStructInit(&TIM_OCInitStructuer);//给不需要配置的结构体成员赋予初始值TIM_OCInitStructuer.TIM_OCMode = TIM_OCMode_PWM1; //输出比较模式TIM_OCInitStructuer.TIM_OCPolarity = TIM_OCPolarity_High; //极性TIM_OCInitStructuer.TIM_OutputState = TIM_OutputState_Enable; //输出使能TIM_OCInitStructuer.TIM_Pulse = 0; //CCR,频率1kHZ,占空比50%的PWM波形TIM_OC1Init(TIM2, &TIM_OCInitStructuer);//配置GPIOA端口通道
}/*定时器定时中断代码*/void Timer_Init(void)//使用TM2定时器
{RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE);GPIOA_Init();TIM_InternalClockConfig(TIM2);TIM_TimeBaseInitStructure.TIM_ClockDivision = TIM_CKD_DIV1;TIM_TimeBaseInitStructure.TIM_CounterMode = TIM_CounterMode_Up;TIM_TimeBaseInitStructure.TIM_Period = 100 - 1; //ARRTIM_TimeBaseInitStructure.TIM_Prescaler = 720 - 1; //PSCTIM_TimeBaseInitStructure.TIM_RepetitionCounter = 0;TIM_TimeBaseInit(TIM2, &TIM_TimeBaseInitStructure);PWM_Init();TIM_Cmd(TIM2, ENABLE);//启动定时器
}/*CCR控制灯的亮度在运行过程中不断更改CCR的值来达到呼吸效果*/ //CCR[0~100]值越大灯越亮
void PWM_setcompare1(uint16_t compare){TIM_SetCompare1(TIM2, compare);
}uint8_t i;int main(void){Timer_Init();while(1){for(i = 0; i <= 100; i ++){PWM_setcompare1(i);Delay_ms(10);}for(i = 0; i <= 100; i ++){PWM_setcompare1(100 - i);Delay_ms(10);}}
}

注:TIM_OutputState 和 TIM_OutputNState不同

效果:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
亮度会由暗变亮再变暗循环往复

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

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

相关文章

【Git】Git 原理和使用

Git 一、Git 本地仓库1. 本地仓库的创建2. 配置 Git3. 工作区、暂存区、版本库4. 添加文件5. 查看 .git 文件6. 修改文件7. 版本回退8. 撤销修改9. 删除文件 二、分支管理1. 理解分支2. 创建分支3. 切换分支4. 合并分支5. 删除分支6. 合并冲突7. 分支管理策略8. bug 分支9. 强制…

TempleteMethod

TempleteMethod 动机 在软件构建过程中&#xff0c;对于某一项任务&#xff0c;它常常有稳定的整体操作结构&#xff0c;但各个子步骤却有很多改变的需求&#xff0c;或者由于固有的原因 &#xff08;比如框架与应用之间的关系&#xff09;而无法和任务的整体结构同时实现。如…

Armv8/Armv9 Cache知识大纲分享--思维导图

关键词&#xff1a;cache学习、mmu学习、cache资料、mmu资料、arm资料、armv8资料、armv9资料、 trustzone视频、tee视频、ATF视频、secureboot视频、安全启动视频、selinux视频&#xff0c;cache视频、mmu视频&#xff0c;armv8视频、armv9视频、FF-A视频、密码学视频、RME/CC…

Acwing 838. 堆排序

Acwing 838. 堆排序 题目描述思路讲解代码展示 题目描述 思路讲解 堆是一颗完全二叉树&#xff0c;除了最下面一层&#xff0c;其余是满的&#xff0c;最后一层从左到右排列 小根堆&#xff1a;每个点小于等于左右两堆&#xff0c;所以根节点就是最小值 大根堆&#xff1a;每个…

巧用前缀和

相关题目&#xff1a; 325. 和等于 k 的最长子数组长度 525. 连续数组 class Solution:"""325. 和等于 k 的最长子数组长度巧用前缀和数组&#xff0c;并优化浅醉和数组为单变量"""def findMaxLength(self, nums: List[int], k: int) -> i…

R语言实现随机生存森林(3)

常见问题解答 1、计算C指数 1-Error rate&#xff0c;或者 rsf.err <- get.cindex(yvar$Survival_months,yvar$OS,predictedrf.grow$predicted) 2、模型中predicted和predicted.oob区别 predicted和predicted.oob是两个不同的属性&#xff0c;它们分别表示模型的预测结果…

Google Earth Engine(GEE)案例——如何去除和过滤Landsat和sentinel等系列影像集合中的空影像(三种方法)

简介 本文的主要解决的问题是如何去除和过滤Landsat和sentinel等系列影像集合中的空影像?这个主要源于一下的问题: “从图像集中删除空图像”是什么意思?您的脚本将图像集合过滤到没有图像的日期,这会产生包含 0 个图像的图像集合:https: https://code.earthengine.goog…

Docker Tutorial

什么是Docker 为每个应用提供完全隔离的运行环境 Dockerfile&#xff0c; Image&#xff0c;Container Image&#xff1a; 相当于虚拟机的快照&#xff08;snapshot&#xff09;里面包含了我们需要部署的应用程序以及替它所关联的所有库。通过image&#xff0c;我们可以创建很…

美容店预约小程序搭建流程

随着科技的不断发展&#xff0c;小程序已经成为了人们生活中不可或缺的一部分。对于美容店来说&#xff0c;搭建一个预约小程序不仅可以提高工作效率&#xff0c;还可以增加客户数量、提高服务质量。那么&#xff0c;如何搭建一个美容店预约小程序呢&#xff1f;本文将为你详细…

git使用,一点点

查看自己有没有安装git git --version 如果没有安装请执行sudo yum install -y git来安装 git 指令 git log 查看日志 git pull 同步远端和本地仓库 这就是冲突的报错&#xff1a; 所以这个时候你要同步一下git pull

【项目实战】单数据源多数据库实现多租户

文章目录 前言多租户的四种实现方案单数据源多数据库实现思路代码实现 总结 前言 多租户&#xff08;Multi-Tenancy&#xff09;是一种软件架构设计模式&#xff0c;旨在使单个应用程序可以同时为多个租户&#xff08;如不同组织、用户或客户&#xff09;提供服务&#xff0c;…

CSS 相关

CSS 相关 CSS布局如何管理CSS 代码目录&#xff1f;分多个目录的话&#xff0c;会有命名冲突&#xff0c;那如何解决命名冲突&#xff1f; box-sizing:border-boximage的宽度的问题&#xff1a; CSS布局 单列布局&#xff1a;将一个元素作为布局容器。通常设置一个较小的宽度(最…

MATLAB中d2d函数用法

目录 语法 说明 示例 重新采样离散时间模型 重新采样已识别的离散时间模型 d2d函数的功能是重新采样离散时间模型。 语法 sys1 d2d(sys, Ts) sys1 d2d(sys, Ts, method) sys1 d2d(sys, Ts, opts) 说明 sys1 d2d(sys, Ts)将离散时间动态系统模型 sys 重新采样&#…

HTTP请求交互基础(基于GPT3.5,持续更新)

HTTP交互基础 目的HTTP定义详解HTTP协议&#xff08;规范&#xff09;1. 主要组成部分1.1 请求行&#xff08;Request Line&#xff09;&#xff1a;包含请求方法、请求URI&#xff08;Uniform Resource Identifier&#xff09;和HTTP协议版本。1.2 请求头部&#xff08;Reques…

Ubuntu中还换源 sudo apt-get update更新失败

sudo apt-get update更新失败 1 前提2 编辑3 换源 1 前提 浏览器可以访问百度 如下文章&#xff1a; VMware 中虚拟机没网 2 编辑 输入如下命令&#xff0c;进入换源文件&#xff1a; sudo gedit /etc/apt/sources.list 3 换源 中科大 deb http://mirrors.ustc.edu.cn/ub…

JAVA 异常分类及处理

1 概念 如果某个方法不能按照正常的途径完成任务&#xff0c;就可以通过另一种路径退出方法。在这种情况下会抛出一个封装了错误信息的对象。此时&#xff0c;这个方法会立刻退出同时不返回任何值。另外&#xff0c;调用 这个方法的其他代码也无法继续执行&#xff0c;异常处理…

OCI 发布了容器运行时和镜像规范!

7 月 19 日是开放容器计划Open Container Initiative&#xff08;OCI&#xff09;的一个重要里程碑&#xff0c;OCI 发布了容器运行时和镜像规范的 1.0 版本&#xff0c;而 Docker 在这过去两年中一直充当着推动和引领的核心角色。 我们的目标是为社区、客户以及更广泛的容器行…

【华为OD机试】最长广播效应【2023 B卷|200分】

【华为OD机试】-真题 !!点这里!! 【华为OD机试】真题考点分类 !!点这里 !! ■ 题目描述 某通信网络中有N个网络结点,用1到N进行标识。 网络中的结点互联互通,且结点之间的消息传递有时延,相连结点的时延均为一个时间单位。 现给定网络结点的连接关系link[i]={u,v},其中…

微信不开,WORD一保存就死机

重启后&#xff0c;微信不开&#xff0c;WORD一保存就死机。开微信&#xff0c;WORD就OK了&#xff0c;一切正常了。 其实微信、钉钉这些都是最大的公家木马。

重试机制-spring-retry、guava-retry

重试机制是什么&#xff1f; 网络重试机制是用于在网络通信中处理失败的请求。接口重试可以在一定的时间间隔内多次尝试发送相同的请求&#xff0c;直到请求成功或达到最大重试次数为止。 为什么要重试&#xff1f; 1. 提高请求的成功率&#xff1a;网络通信中可能会出现各种…