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

STM32-呼吸灯仿真

目录

前言:

一.呼吸灯

二.跑马灯

三. 总结



前言:

本篇的主要内容是关于STM32-呼吸灯的仿真,包括呼吸灯,跑马灯的实现与完整代码,欢迎大家的点赞,评论和关注.

接上http://t.csdnimg.cn/mvWR4

既然已经点亮了一盏灯,接下来就可以做更多实验了,

一.呼吸灯

在上一个的基础上,增加一个延迟, 灯就会循环的开关,就可以看到呼吸灯的效果了.

  for(i=0;i<=200;i++) ; //这个是时间间隔

空运行时间,增加运行时间,相当于延迟了

void Delay(){unsigned char i;for(i=0;i<=200;i++) ; //这个是时间间隔
}
int main(void)
{led_init(); //LED初始化while(1){GPIO_ResetBits(GPIOB,GPIO_Pin_0);	 //点亮LEDDelay();GPIO_SetBits(GPIOB,GPIO_Pin_0);	 //熄灭LEDDelay();}	
}

还可以把 Delay() 优化一下

void Delay( int time ){
  unsigned char i;
  for(i=0;i<=time ;i++) ; //这个是时间间隔
}

调用的时候输入参数就可以了

Delay(200); 输入200就和原来的效果一样.

输入更大,更小的数,时间间隔就会更大,更小,

这样写更灵活.

运行仿真就可以看的灯一开一关的变化了.

二.跑马灯

只需要在接一个灯

在初始化一个推挽输出端口

就可以了,然后编译一下,不报错就可以了.

完整代码

#include "led.h"//LED 初始化程序
void led_init(void)
{ GPIO_InitTypeDef  GPIO_LED; //定义GPIO结构体变量RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE); //使能GPIOB端口的时钟GPIO_LED.GPIO_Pin = GPIO_Pin_0;		  //LED端口配置GPIO_LED.GPIO_Mode = GPIO_Mode_Out_PP;  //推挽输出GPIO_LED.GPIO_Speed = GPIO_Speed_2MHz;  //IO口速度为2MHzGPIO_Init(GPIOB, &GPIO_LED);			  //根据设定参数初始化GPIOB0GPIO_SetBits(GPIOB,GPIO_Pin_0);	//GPIOB0输出高电平,初始化LED灭GPIO_LED.GPIO_Pin = GPIO_Pin_1;		  //LED端口配置GPIO_LED.GPIO_Mode = GPIO_Mode_Out_PP;  //推挽输出GPIO_LED.GPIO_Speed = GPIO_Speed_2MHz;  //IO口速度为2MHzGPIO_Init(GPIOB, &GPIO_LED);			  //根据设定参数初始化GPIOB0GPIO_ResetBits(GPIOB,GPIO_Pin_1);	//GPIOB0输出高电平,初始化LED灭
}
#ifndef __LED_H
#define __LED_H//#include "main.h"//标准头文件
#include "stm32f10x.h"void led_init(void);#endif
#ifndef __MAIN_H
#define __MAIN_H//用户自定义头文件
#include "led.h"void Delay();#endif
#include "main.h"void Delay(){unsigned char i;for(i=0;i<=200;i++) ; 
}int main(void)
{led_init(); //LED初始化while(1){GPIO_ResetBits(GPIOB,GPIO_Pin_0);	 //点亮LEDGPIO_SetBits(GPIOB,GPIO_Pin_1);	 Delay();GPIO_SetBits(GPIOB,GPIO_Pin_0);	 //熄灭LEDGPIO_ResetBits(GPIOB,GPIO_Pin_1);	 Delay();}	
}

就可以看到第一个灯开启,然后关闭,然后第二个灯开始,关闭.循环起来就看到跑马灯效果了

三. 总结

以下是关于 STM32 呼吸灯仿真的总结:

STM32 优势

  • 高性能的微控制器,适合多种复杂应用场景。

呼吸灯原理

  • 通过逐渐改变 LED 的亮度,模拟类似呼吸的效果。
  • 通常利用 PWM(脉冲宽度调制)来控制亮度。

仿真要点

  • 在仿真环境中设置好 STM32 芯片相关参数。
  • 配置定时器以产生合适的 PWM 信号。
  • 编写代码来控制 PWM 的占空比变化。

实现步骤

  • 初始化 STM32 相关资源,如时钟、GPIO 等。
  • 配置定时器工作模式和参数。
  • 在循环中根据时间或其他逻辑改变占空比。
  • 通过仿真观察呼吸灯的效果。

效果评估

  • 观察亮度变化是否平滑、自然。
  • 检查是否达到预期的呼吸节奏和效果。

应用拓展

  • 可用于指示设备状态、营造氛围等。
  • 结合其他功能实现更丰富的交互效果。

在进行 STM32 呼吸灯仿真时,需要对微控制器的特性和编程有深入了解,通过精心的设计和调试来实现理想的呼吸灯效果。

相关文章:

STM32-呼吸灯仿真

目录 前言: 一.呼吸灯 二.跑马灯 三. 总结 前言: 本篇的主要内容是关于STM32-呼吸灯的仿真,包括呼吸灯,跑马灯的实现与完整代码,欢迎大家的点赞,评论和关注. 接上http://t.csdnimg.cn/mvWR4 既然已经点亮了一盏灯,接下来就可以做更多实验了, 一.呼吸灯 在上一个的基础上…...

【AI基础】第三步:纯天然保姆喂饭级-安装并运行chatglm2-6b

chatglm2构建时使用了RUST&#xff0c;所以在安装chatglm2之前&#xff0c;先安装RUST。 此系列文章列表&#xff1a; 【AI基础】第一步&#xff1a;安装python开发环境-windows篇_下载安装ai环境python-CSDN博客 【AI基础】第一步&#xff1a;安装python开发环境-conda篇_mini…...

Spring Security系列之Handler

概述 与Spring、Spring MVC、Spring Boot一样&#xff0c;Spring Security里也有很多Handler接口、可以分为两大类&#xff0c;一类是普通的XxxHandler&#xff08;见名知意&#xff09;&#xff0c;另一类是对应的ServerXxxHandler&#xff08;RequestRejectedHandler除外&am…...

Thinkphp使用Elasticsearch查询

在Thinkphp中调用ES&#xff0c;如果自己手写json格式的query肯定是很麻烦的。我这里使用的是ONGR ElasticsearchDSL 构建 ES 查询。ongr ElasticsearchDSL 的开源项目地址&#xff1a;GitHub - ongr-io/ElasticsearchDSL: Query DSL library for Elasticsearch。ONGR Elastics…...

开源日志分析平台ELK实战应用

1.开源日志分析平台ELK概述及搭建过程 ELK 是一个开源的日志管理平台,由 Elasticsearch、Logstash 和 Kibana 三个组件组成。这个平台广泛用于实时日志处理和分析。下面简单介绍一下每个组件的作用以及如何搭建一个基本的 ELK 栈。 ELK 组件 Elasticsearch:是一个搜索和分析…...

css基本操作及使用

CSS 的基本简介 什么是 CSS? CSS 指层叠样式表 (Cascading Style Sheets) 样式定义如何显示 HTML 元素 样式通常存储在样式表中 把样式添加到 HTML 4.0 中&#xff0c;是为了解决内容与表现分别的问题 外部样式表可以极大提高工作效率 外部样式表通常存储在 CSS 文件中 …...

SpringBoot+Vue幼儿园管理系统(前后端分离)

技术栈 JavaSpringBootMavenMyBatisMySQLVueElement-UI 系统角色 教师用户管理员 功能截图...

MFC实现子控件focus焦点上下移动父控件ListView和Gridview也跟着向上下移动

项目中要实现mfc功能&#xff0c;然后子控件焦点下移&#xff0c;LIstView和Gridview父控件不会下移&#xff0c;所以就有这个文章。废话不多说直接上代码。 MFCGridView.java import android.content.Context; import android.util.AttributeSet; import android.view.View;…...

几何关系运算处理

1. 判断点在线的左边还是右边 要判断一个坐标点在直线的左侧还是右侧&#xff0c;可以使用向量叉积。具体来说&#xff0c;对于给定的直线和点&#xff0c;我们可以计算点到直线的向量与直线的方向向量的叉积。叉积的符号可以用于判断点的位置关系&#xff1a; 如果叉积为正&…...

http和https分别是什么?区别是什么?

HTTP和HTTPS是两种常见的网络协议&#xff0c;用于在Web上进行数据传输。以下是它们的简要解释和主要区别&#xff1a; HTTP&#xff08;Hypertext Transfer Protocol&#xff09; HTTP是一种应用层协议&#xff0c;用于在Web上传输数据。它是互联网上应用最为广泛的一种网络…...

第一周:计算机网络概述(上)

一、计算机网络基本概念 1、计算机网络通信技术计算机技术 计算机网络就是一种特殊的通信网络&#xff0c;其特殊之处就在于它的信源和信宿就是计算机。 2、什么是计算机网络 在计算机网络中&#xff0c;我们把这些计算机统称为“主机”&#xff08;上图中所有相连的电脑和服…...

谷歌AI搜索变革,中国引擎能跟上步伐?

全文预计1200字左右&#xff0c;预计阅读需要6分钟。 一年前&#xff0c;谷歌宣布人工智能将引领搜索的未来&#xff0c;如今&#xff0c;这一愿景正逐步实现。谷歌已在美国推出并即将全球推广"AI Overviews"&#xff0c;为用户提供由AI生成的搜索结果概览&#xff0…...

【机器学习300问】110、什么是Lasso回归模型?

LASSO回归的全称是Least Absolute Shrinkage and Selection Operator&#xff0c;中文叫“最小绝对收缩和选择算子”&#xff0c;用一个比喻来初步感受一下它的作用&#xff1a; 想象你在整理一个杂乱无章的房间&#xff0c;里面堆满了各种物品&#xff08;代表众多的预测变量&…...

Qt实现麦克风音频输入保存wav文件

一.本文目的 实现在Qt中接收麦克风数据并保存为WAV文件&#xff0c;使用QAudioInput来录音&#xff0c;并使用QFile来保存数据到WAV文件。 开发环境&#xff1a;QT5.12 本文用极简代码实现&#xff0c;核心代码只需不到100行。 完整工程代码文末链接可以直接下载。 二.代码实…...

docker_如何推送镜像到仓库(hub.docker.com)

在执行 docker push 时收到 denied: requested access to the resource is denied 错误通常意味着你没有权限将镜像推送到目标存储库。这可能有几个原因,包括: 未登录 Docker Hub:你还没有登录到 Docker Hub,或者你登录的账户没有权限推送到目标存储库。存储库不存在:目标…...

【Python】认识 Python

一、计算机基础概念 1、什么是计算机 很多老一辈的人&#xff0c;管下面这个叫做计算机。然而&#xff0c;它只是 “计算器”&#xff0c;和计算机是有很大区别的。 现在我们所说的计算机&#xff0c;不光能进行算术运算&#xff0c;还能进行逻辑判断、数据存储、网络通信等…...

Vue根据后端返回的tabList动态渲染组件信息

最近做了一个功能&#xff0c;后端根据配置信息&#xff0c;动态返回一个tabList&#xff0c;其中结构是List<String,Object> tabList; map里面的数据是 label、value 页面需要根据tablist动态渲染组件&#xff08;不同的tab都使用了组件进行了封装&#xff09; 实现效果…...

二轴机器人大米装箱机:技术创新引领智能包装新潮流

在科技日新月异的今天&#xff0c;自动化和智能化已成为各行各业追求高效、精准生产的关键。作为粮食加工行业的重要一环&#xff0c;大米装箱机的技术创新与应用价值日益凸显。其中&#xff0c;二轴机器人大米装箱机以其高效、稳定、智能的特点&#xff0c;成为市场的新宠。星…...

rtl8723DU移植 android4.4 4418 (第二部分蓝牙部分)

使用的代码&#xff1a; HMI &#xff08;8723bu&#xff09;源码 567_RTL8723DU_WiFi_linux_v5.6.5.3_35502_COEX20181130-2e2e.20191025.zip 由于之前写的所有笔记没有保存&#xff0c;这里只能是部分。 0、 前置知识 1 、kernel 的移植 2、hardwire的移植 将 驱动中的 h…...

【Vue】组件的存放目录问题

注意&#xff1a; .vue文件 本质无区别 组件分类 .vue文件分为2类&#xff0c;都是 .vue文件&#xff08;本质无区别&#xff09; 页面组件 &#xff08;配置路由规则时使用的组件&#xff09;复用组件&#xff08;多个组件中都使用到的组件&#xff09; 存放目录 分类开来的…...

ES6从入门到精通:前言

ES6简介 ES6&#xff08;ECMAScript 2015&#xff09;是JavaScript语言的重大更新&#xff0c;引入了许多新特性&#xff0c;包括语法糖、新数据类型、模块化支持等&#xff0c;显著提升了开发效率和代码可维护性。 核心知识点概览 变量声明 let 和 const 取代 var&#xf…...

Spring Boot 实现流式响应(兼容 2.7.x)

在实际开发中&#xff0c;我们可能会遇到一些流式数据处理的场景&#xff0c;比如接收来自上游接口的 Server-Sent Events&#xff08;SSE&#xff09; 或 流式 JSON 内容&#xff0c;并将其原样中转给前端页面或客户端。这种情况下&#xff0c;传统的 RestTemplate 缓存机制会…...

前端倒计时误差!

提示:记录工作中遇到的需求及解决办法 文章目录 前言一、误差从何而来?二、五大解决方案1. 动态校准法(基础版)2. Web Worker 计时3. 服务器时间同步4. Performance API 高精度计时5. 页面可见性API优化三、生产环境最佳实践四、终极解决方案架构前言 前几天听说公司某个项…...

Linux云原生安全:零信任架构与机密计算

Linux云原生安全&#xff1a;零信任架构与机密计算 构建坚不可摧的云原生防御体系 引言&#xff1a;云原生安全的范式革命 随着云原生技术的普及&#xff0c;安全边界正在从传统的网络边界向工作负载内部转移。Gartner预测&#xff0c;到2025年&#xff0c;零信任架构将成为超…...

linux 下常用变更-8

1、删除普通用户 查询用户初始UID和GIDls -l /home/ ###家目录中查看UID cat /etc/group ###此文件查看GID删除用户1.编辑文件 /etc/passwd 找到对应的行&#xff0c;YW343:x:0:0::/home/YW343:/bin/bash 2.将标红的位置修改为用户对应初始UID和GID&#xff1a; YW3…...

【决胜公务员考试】求职OMG——见面课测验1

2025最新版&#xff01;&#xff01;&#xff01;6.8截至答题&#xff0c;大家注意呀&#xff01; 博主码字不易点个关注吧,祝期末顺利~~ 1.单选题(2分) 下列说法错误的是:&#xff08; B &#xff09; A.选调生属于公务员系统 B.公务员属于事业编 C.选调生有基层锻炼的要求 D…...

IoT/HCIP实验-3/LiteOS操作系统内核实验(任务、内存、信号量、CMSIS..)

文章目录 概述HelloWorld 工程C/C配置编译器主配置Makefile脚本烧录器主配置运行结果程序调用栈 任务管理实验实验结果osal 系统适配层osal_task_create 其他实验实验源码内存管理实验互斥锁实验信号量实验 CMISIS接口实验还是得JlINKCMSIS 简介LiteOS->CMSIS任务间消息交互…...

全志A40i android7.1 调试信息打印串口由uart0改为uart3

一&#xff0c;概述 1. 目的 将调试信息打印串口由uart0改为uart3。 2. 版本信息 Uboot版本&#xff1a;2014.07&#xff1b; Kernel版本&#xff1a;Linux-3.10&#xff1b; 二&#xff0c;Uboot 1. sys_config.fex改动 使能uart3(TX:PH00 RX:PH01)&#xff0c;并让boo…...

华硕a豆14 Air香氛版,美学与科技的馨香融合

在快节奏的现代生活中&#xff0c;我们渴望一个能激发创想、愉悦感官的工作与生活伙伴&#xff0c;它不仅是冰冷的科技工具&#xff0c;更能触动我们内心深处的细腻情感。正是在这样的期许下&#xff0c;华硕a豆14 Air香氛版翩然而至&#xff0c;它以一种前所未有的方式&#x…...

宇树科技,改名了!

提到国内具身智能和机器人领域的代表企业&#xff0c;那宇树科技&#xff08;Unitree&#xff09;必须名列其榜。 最近&#xff0c;宇树科技的一项新变动消息在业界引发了不少关注和讨论&#xff0c;即&#xff1a; 宇树向其合作伙伴发布了一封公司名称变更函称&#xff0c;因…...