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

基于stm32f103rct6的呼吸灯实现

一、PWM

       我们可以通过改变灯的有效电压占空比来实现呼吸灯效果。其中我们要用到PWM(脉宽调制),通过pwm我们可以来改变高电平的占空比

        ·占空比:在一个周期中,高电平所占整个周期的百分比

具体如图:

当我们用pwm来生成呼吸灯时,因为在stm32f103rct6中PA8LED灯是通过给PA8输入一个低电平点亮的,所以低电平在一个周期中维持的时间越长,灯越亮。

具体实现看代码:

void Pwm_Init()
{GPIO_InitTypeDef  	GPIO_InitStruct;TIM_OCInitTypeDef 	TIM_OCInitStruct;TIM_TimeBaseInitTypeDef  TIM_TimeBaseInitStruct;/*1、使能时钟*/RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO | RCC_APB2Periph_GPIOA |RCC_APB2Periph_TIM1,ENABLE);/*2、配置GPIO*/GPIO_InitStruct.GPIO_Pin 	= GPIO_Pin_8;  		//引脚8 LED1GPIO_InitStruct.GPIO_Mode 	= GPIO_Mode_AF_PP;		//复用GPIO_InitStruct.GPIO_Speed	= GPIO_Speed_50MHz; //速度GPIO_Init(GPIOA,&GPIO_InitStruct);	//4、初始化定时器,配置ARR,PSC。TIM_TimeBaseInitStruct.TIM_Prescaler	= psc; 	//分频系统  ,每秒数多少个数 TIM_TimeBaseInitStruct.TIM_Period		= per; 	//重装值TIM_TimeBaseInitStruct.TIM_CounterMode	= TIM_CounterMode_Up; //向上计数TIM_TimeBaseInitStruct.TIM_ClockDivision = TIM_CKD_DIV1; //分频因子TIM_TimeBaseInitStruct.TIM_RepetitionCounter = 0x00;TIM_TimeBaseInit(TIM1,&TIM_TimeBaseInitStruct);		/*配置pwm*/TIM_OCInitStruct.TIM_OCMode		=  TIM_OCMode_PWM1; 	  //PWM1模式TIM_OCInitStruct.TIM_OutputState=  TIM_OutputState_Enable;//输出使能TIM_OCInitStruct.TIM_OCPolarity =  TIM_OCPolarity_Low; 	  //极性低TIM_OCInitStruct.TIM_Pulse = 0x00;TIM_OC1Init(TIM1,&TIM_OCInitStruct);//5、使能预装载寄存器: TIM_OC1PreloadConfig(TIM1,TIM_OCPreload_Enable); //6、使能自动重装载的预装载寄存器允许位	TIM_ARRPreloadConfig(TIM1,ENABLE);/*pwm输出通道使能*/TIM_CtrlPWMOutputs(TIM1,ENABLE);//7、使能定时器。TIM_Cmd(TIM1,ENABLE);}

 主函数:


void HardWare_Init(void)
{SysTick_Init(72);Pwm_Init(100-1,7200-1);
}int main(void)
{u8 cnt = 0;u8 fx = 1;HardWare_Init();while(1){if(fx){cnt++;if(cnt>99){fx = 0;}}else{cnt--;if(cnt < 1){fx = 1;}}TIM_SetCompare1(TIM1,cnt);delay_ms(20);}
}

相关文章:

基于stm32f103rct6的呼吸灯实现

一、PWM 我们可以通过改变灯的有效电压占空比来实现呼吸灯效果。其中我们要用到PWM&#xff08;脉宽调制&#xff09;&#xff0c;通过pwm我们可以来改变高电平的占空比 占空比&#xff1a;在一个周期中&#xff0c;高电平所占整个周期的百分比 具体如图&#xff1a; 当我们用…...

关于火绒邮件监控引起的扫描任意IP会有25和110端口反馈

之前测试过公司的外网IP&#xff0c;因为之前一直很注意对外映射的端口&#xff0c;都限制了可以访问的IP地址和端口&#xff0c;所以之前扫描的时候是一个端口都扫描不出来的。最近闲的无事&#xff0c;想着再扫描试试&#xff0c;结果发现居然开放了25和110端口&#xff0c;我…...

物联网应用中蓝牙模块怎么选?_蓝牙模块厂家

在蓝牙模块选型前期&#xff0c;一定要了解应用场景以及需要实现的功能&#xff08;应用框图&#xff09;&#xff0c;以及功能实现过程中所能提供调用的接口&#xff08;主从设备&#xff0c;功能&#xff09;&#xff0c;考虑模块供电&#xff0c;尺寸&#xff0c;接收灵敏度…...

Mysql远程登录报错:Host ‘192.168.137.1‘ is not allowed to connect to this MySQL server

连接失败是因为数据库没有对指定的ip的服务器地址的连接进行授权&#xff0c;许哦一需要先进行授权。 1. 改表 先登录登录数据库&#xff1a;mysql -u root -p mysql>use mysql;mysql>update user set host % where user root;mysql>FLUSH PRIVILEGES; 2.授权 …...

vue去掉循环数组中的最后一组的某个样式style/class

vue去掉循环数组中的最后一组的某个样式style/class 需求&#xff1a;要实现这样的排列 现状 发现&#xff0c;最后一个格子并没有跟下面绿色线对齐。 最后发现 是因为 每个格子都给了 margin-right&#xff1a;36px&#xff0c;影响到了最后一个格子 所以要 将最后一个格子的…...

Vue2面试题100问

Vue2面试题100问 Vue2面试题100问1.简述一下你对Vue的理解2.声明式和命令式编程概念的理解3.Vue 有哪些基本特征4.vue之防止页面加载时看到花括号解决方案有哪几种&#xff1f;5.Vue中v-for与v-if能否一起使用&#xff1f;6.vue中v-if与v-show的区别以及使用场景7.v-on可以监听…...

开机启动应用

windows 建立快捷方式 winr 输入shell:startup 将快捷方式复制进来 就可以了 如果你有ccleaner&#xff0c;也可以看到...

RK3588平台产测之ArmSoM-W3 DDR压力测试

1. 简介 RK3588从入门到精通 ArmSoM团队在产品量产之前都会对产品做几次专业化的功能测试以及性能压力测试&#xff0c;以此来保证产品的质量以及稳定性 优秀的产品都要进行多次全方位的功能测试以及性能压力测试才能够经得起市场的检验 2. 环境介绍 硬件环境&#xff1a; …...

springboot初试elasticsearch

引入依赖 elasticsearch的依赖版本与你elasticsearch要一致 <dependency><groupId>org.elasticsearch.client</groupId><artifactId>elasticsearch-rest-high-level-client</artifactId> </dependency> 索引库的操作 创建索引库 impo…...

Node.js安装教程图文详解

版权声明 本文原创作者&#xff1a;谷哥的小弟作者博客地址&#xff1a;http://blog.csdn.net/lfdfhl 下载Node.js 请下载Node.js并保存至本地&#xff0c;官方网址&#xff1a;https://nodejs.org/zh-cn/ 在此&#xff0c;选择windows系统64位的16.13.1版本进行下载。 下载…...

laragon 为 php 安装 Xdebug 扩展

众所周知&#xff0c;php 自带的 var_dump() 输出格式很不直观 而 laragon 作为很好的 windos 下开发环境很受欢迎&#xff0c;本文就介绍如何快速为 laragon 的 php 安装 Xdebug&#xff0c;方便开发调试 一&#xff1a;启动开发环境&#xff0c;在任意可访问 php 页面中输出 …...

华为云 存在不支持迁移的外键解决方法

DRS 检测出源端存在不支持的外键引用操作 MySQL、GaussDB(for MySQL)为源的全量增量或增量迁移、同步场景&#xff0c;以及MySQL、GaussDB(for MySQL)为源灾备场景 表1 源端存在不支持的外键引用操作 预检查项 源端存在不支持的外键引用操作。 描述 同步对象中存在包含CASC…...

Linux 中的 cd 命令及示例

cd命令在Linux 中称为更改目录命令。它用于有效地从当前工作目录移动到系统中的不同目录。 Linux 中 `cd` 命令的语法 光盘[目录] cd [directory]在这里,将 [directory] ​​替换为您要导航到的目标目录的路径。 “cd”命令的实际实现与示例。...

【VUE】

概念 VUE是一个用于构建用户界面的渐进式框架 构建用户界面&#xff1a;基于数据渲染出用户看到的界面 渐进式&#xff1a;声明式渲染->组件系统->客户端路由->大规模状态管理->构建工具 框架&#xff1a;一套完整的项目解决方案 VUE使用方式&#xff1a; 1.…...

详解初阶数据结构之顺序表(SeqList)——单文件文件实现SeqList的增删查改

目录 一、线性表 二、顺序表 2.1概念及结构 2.2接口实现 2.3动态顺序表的创建 2.3动态顺序表的初始化 2.3.1传值初始化 2.3.2传址初始化 2.4动态顺序表的清空 2.5动态顺序表的扩容 2.6动态顺序表内容的打印 三、动态顺序表的使用 3.1尾插尾删 3.1.1尾插 3.1.2尾删…...

JavaScript中的深拷贝和浅拷贝

聚沙成塔每天进步一点点 ⭐ 专栏简介⭐ 浅拷贝&#xff08;Shallow Copy&#xff09;&#xff1a;⭐深拷贝&#xff08;Deep Copy&#xff09;&#xff1a;⭐ 写在最后 ⭐ 专栏简介 前端入门之旅&#xff1a;探索Web开发的奇妙世界 记得点击上方或者右侧链接订阅本专栏哦 几何带…...

树形结构的节点作为查询参数业务

1、业务描述 有一个树结构&#xff0c;存在一个唯一的code和一个父节点的pcode&#xff0c;要求前端传入任意层的code匹配这个code对应的所有子节点对应的数据。 2、解决思路 因为无法判定传入的code到底在那层&#xff0c;so 直接递归调用查询判断&#xff0c;如果有子节点就…...

sql:SQL优化知识点记录(十二)

&#xff08;1&#xff09;读锁案例讲解 加读锁和写锁 查看是否上锁&#xff1a;In_use&#xff1a;变成了1 读写锁对我们数据产生哪些影响&#xff1a; 读锁&#xff1a;是共享锁&#xff0c;其他线程可以查看&#xff1a; 加了读锁&#xff1a;session1不能修改自己&#xf…...

一.使用qt creator 设计显示GUI

一.安装qt creator 二.创建项目 文件-》新建项目 三.使用设计 可以直接使用鼠标拖拽 四.转换为py文件 # from123.py 为导出 py文件的文件名 form.ui 为 qt creator创造的 ui 文件 pyuic5 -o x:\xxx\from123.py form.ui五.显示GUI from PyQt5.QtWidgets import * fr…...

sql:SQL优化知识点记录(八)

&#xff08;1&#xff09;索引面试题分析 所谓索引&#xff1a;就是排好序的快速查找数据结构&#xff0c;排序家查找是索引的两个用途 select * 在where使用到了索引&#xff0c;当select * 有模糊查询%在左边索引会失效 当select * where后面索引的顺序发生变化&#xff0…...

wordpress后台更新后 前端没变化的解决方法

使用siteground主机的wordpress网站&#xff0c;会出现更新了网站内容和修改了php模板文件、js文件、css文件、图片文件后&#xff0c;网站没有变化的情况。 不熟悉siteground主机的新手&#xff0c;遇到这个问题&#xff0c;就很抓狂&#xff0c;明明是哪都没操作错误&#x…...

调用支付宝接口响应40004 SYSTEM_ERROR问题排查

在对接支付宝API的时候&#xff0c;遇到了一些问题&#xff0c;记录一下排查过程。 Body:{"datadigital_fincloud_generalsaas_face_certify_initialize_response":{"msg":"Business Failed","code":"40004","sub_msg…...

【OSG学习笔记】Day 18: 碰撞检测与物理交互

物理引擎&#xff08;Physics Engine&#xff09; 物理引擎 是一种通过计算机模拟物理规律&#xff08;如力学、碰撞、重力、流体动力学等&#xff09;的软件工具或库。 它的核心目标是在虚拟环境中逼真地模拟物体的运动和交互&#xff0c;广泛应用于 游戏开发、动画制作、虚…...

【JavaEE】-- HTTP

1. HTTP是什么&#xff1f; HTTP&#xff08;全称为"超文本传输协议"&#xff09;是一种应用非常广泛的应用层协议&#xff0c;HTTP是基于TCP协议的一种应用层协议。 应用层协议&#xff1a;是计算机网络协议栈中最高层的协议&#xff0c;它定义了运行在不同主机上…...

可靠性+灵活性:电力载波技术在楼宇自控中的核心价值

可靠性灵活性&#xff1a;电力载波技术在楼宇自控中的核心价值 在智能楼宇的自动化控制中&#xff0c;电力载波技术&#xff08;PLC&#xff09;凭借其独特的优势&#xff0c;正成为构建高效、稳定、灵活系统的核心解决方案。它利用现有电力线路传输数据&#xff0c;无需额外布…...

CMake基础:构建流程详解

目录 1.CMake构建过程的基本流程 2.CMake构建的具体步骤 2.1.创建构建目录 2.2.使用 CMake 生成构建文件 2.3.编译和构建 2.4.清理构建文件 2.5.重新配置和构建 3.跨平台构建示例 4.工具链与交叉编译 5.CMake构建后的项目结构解析 5.1.CMake构建后的目录结构 5.2.构…...

电脑插入多块移动硬盘后经常出现卡顿和蓝屏

当电脑在插入多块移动硬盘后频繁出现卡顿和蓝屏问题时&#xff0c;可能涉及硬件资源冲突、驱动兼容性、供电不足或系统设置等多方面原因。以下是逐步排查和解决方案&#xff1a; 1. 检查电源供电问题 问题原因&#xff1a;多块移动硬盘同时运行可能导致USB接口供电不足&#x…...

Cloudflare 从 Nginx 到 Pingora:性能、效率与安全的全面升级

在互联网的快速发展中&#xff0c;高性能、高效率和高安全性的网络服务成为了各大互联网基础设施提供商的核心追求。Cloudflare 作为全球领先的互联网安全和基础设施公司&#xff0c;近期做出了一个重大技术决策&#xff1a;弃用长期使用的 Nginx&#xff0c;转而采用其内部开发…...

鱼香ros docker配置镜像报错:https://registry-1.docker.io/v2/

使用鱼香ros一件安装docker时的https://registry-1.docker.io/v2/问题 一键安装指令 wget http://fishros.com/install -O fishros && . fishros出现问题&#xff1a;docker pull 失败 网络不同&#xff0c;需要使用镜像源 按照如下步骤操作 sudo vi /etc/docker/dae…...

06 Deep learning神经网络编程基础 激活函数 --吴恩达

深度学习激活函数详解 一、核心作用 引入非线性:使神经网络可学习复杂模式控制输出范围:如Sigmoid将输出限制在(0,1)梯度传递:影响反向传播的稳定性二、常见类型及数学表达 Sigmoid σ ( x ) = 1 1 +...