STM32-呼吸灯仿真

news2024/10/6 6:01:23

目录

前言:

一.呼吸灯

二.跑马灯

三. 总结



前言:

本篇的主要内容是关于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);	 //点亮LED
    Delay();
    GPIO_SetBits(GPIOB,GPIO_Pin_0);	 //熄灭LED
    Delay();
  }	
}

还可以把 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口速度为2MHz
  GPIO_Init(GPIOB, &GPIO_LED);			  //根据设定参数初始化GPIOB0
  
  GPIO_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口速度为2MHz
  GPIO_Init(GPIOB, &GPIO_LED);			  //根据设定参数初始化GPIOB0
  
  GPIO_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);	 //点亮LED
    GPIO_SetBits(GPIOB,GPIO_Pin_1);	 
                   
   Delay();
   GPIO_SetBits(GPIOB,GPIO_Pin_0);	 //熄灭LED
   GPIO_ResetBits(GPIOB,GPIO_Pin_1);	 
   Delay();
  }	
}

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

三. 总结

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

STM32 优势

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

呼吸灯原理

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

仿真要点

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

实现步骤

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

效果评估

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

应用拓展

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

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

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

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

相关文章

Informer

I n f o r m e r Informer Informer 摘要&#xff1a; 长序列时间序列的预测 i n f o r m e r informer informer优点&#xff1a; P r o b s p a r e Probspare Probspare自关注机制&#xff0c;在时间复杂度和内存使用方面达到 O ( N l o g N ) O(NlogN) O(NlogN),在序列依…

plsql 实现自动补全语句

1.打开plsql程序所在文件目录 2.在此目录下新建文件auto_complete.txt &#xff08;文件名随便起&#xff09; 3.在auto_complete.txt 中写入关系对应&#xff1a; 4.在配置-首选项-用户界面-编辑器 中引入auto_complete.txt 即可 5.开一个sql窗口&#xff0c;输入sf 后敲个…

hadoop部署hive

1.安装mysql数据库 这里采用docker部署mysql,如果没有安装docker #安装yum工具 yum install -y yum-utils device-mapper-persistent-data lvm2 --skip-broken #设置docker镜像源 yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/…

golang的函数为什么能有多个返回值?

在golang1.17之前&#xff0c;函数的参数和返回值都是放在函数栈里面的&#xff0c;比如函数A调用函数B&#xff0c;那么B的实参和返回值都是存放在函数A的栈里面&#xff0c;所以可以轻松的返回多个值。 其他的编程语言大都使用某个寄存器来存储函数的返回值。 但是从golang…

文章解读与仿真程序复现思路——电网技术EI\CSCD\北大核心《基于两阶段鲁棒的多综合能源微网-共享储能电站协同优化运行策略》

本专栏栏目提供文章与程序复现思路&#xff0c;具体已有的论文与论文源程序可翻阅本博主免费的专栏栏目《论文与完整程序》 论文与完整源程序_电网论文源程序的博客-CSDN博客https://blog.csdn.net/liang674027206/category_12531414.html 电网论文源程序-CSDN博客电网论文源…

Android 安装调试 TelephonyProvider不生效

直接安装TelephonyProvider的时候&#xff0c;&#xff08;没有重启&#xff09;发现数据库没有生效。 猜测应该是原本的数据库没有删除后重建更新。 解决方法&#xff1a;杀掉phone进程 adb shell am force-stop com.android.phone 查看device进程 adb shell ps | grep <…

实验二、网络属性设置《计算机网络》

精神状态 be like&#xff1a;边写边崩溃&#xff0c;越写越得劲儿。 目录 一、实验目的&#xff1a; 二、实验内容 三、实验步骤&#xff1a; 四、实验小结 一、实验目的&#xff1a; 掌握 IP 地址、子网掩码等网络属性的设置。 二、实验内容 预备知识&#xff1a; 1、…

MySQL有哪些锁?

文章目录 前言一、全局锁1.全局锁是怎么用的&#xff1f;2.全局锁应用场景是什么&#xff1f;3.加全局锁又会带来什么缺点呢&#xff1f;4.既然备份数据库数据的时候&#xff0c;使用全局锁会影响业务&#xff0c;那有什么其他方式可以避免&#xff1f; 二、表级表1.MySQL 表级…

vue2组件封装实战系列之space组件

组件之 GfSpace 多个同类型的内容比如 div/span/button/li 等&#xff0c;实现水平、垂直方向的均匀布局的功能 效果预览 属性 参数类型说明可选值默认值flexBoolean是否 flex 布局true/falsefalsegapNumber内容间距-10directionString内容排列方向row/columnrow 代码实现 这…

使用Colaboratory免费GPU资源微调Llama3-8b

Llama3微调过程 准备工作 Google Colaboratory Google Colaboratory&#xff0c;也称为 Colab&#xff0c;是一个基于云的平台&#xff0c;允许用户编写和执行 Python 代码。 它为机器学习和数据分析任务提供了便利的环境&#xff0c;并内置了对 TensorFlow 等流行库的支持。…

【uniapp】带圆角渐变边框实现

1. 效果图 2. 代码实现 <image class"item-left-img" :src"url" mode"aspectFill" />.item-left-img {width: 240rpx;height: 320rpx;border: 6rpx solid transparent;background-clip: padding-box, border-box;background-origin: padd…

企业建站响应式网站建设平台版源码系统 海量模版可选择 带完整的安装代码以及搭建教程

系统概述 企业建站响应式网站建设平台版源码系统是一款集创新性、实用性和便捷性于一体的建站解决方案。它旨在为用户提供一站式的网站建设服务&#xff0c;无论你是新手还是经验丰富的开发者&#xff0c;都能通过该系统轻松实现网站的构建与部署。 该系统采用先进的技术架构…

Oracle和mysql中插入时间字段

例如有id 和 times两个字段 Oracle insert into xxx values|(1,sysdate) mysql insert into xxx values(1,now()) 在 MySQL 中&#xff0c;SYSDATE() 函数也是可用的&#xff0c;它与 NOW() 类似&#xff0c;但略有不同&#xff1a; NOW…

毫米波雷达深度学习技术-1.6目标识别1

1.6 目标识别 利用检测和跟踪在距离、多普勒和角度这两个维度中的任意一个进行精确的目标定位后&#xff0c;将检测到的目标分类到所需的类别中。与检测类似&#xff0c;提出了多种框架来同时使用图像和点云进行目标分类。使用图像进行目标分类的最常见方法是从检测到的目标特征…

基于JSP技术的社区疫情防控管理信息系统

你好呀&#xff0c;我是计算机学长猫哥&#xff01;如果有相关需求&#xff0c;文末可以找到我的联系方式。 开发语言&#xff1a;JSP 数据库&#xff1a;MySQL 技术&#xff1a;JSPJavaBeans 工具&#xff1a;MyEclipse、Tomcat、Navicat 系统展示 首页 用户注册与登录界…

Nvidia/算能 +FPGA+AI大算力边缘计算盒子:大型机械智能预警系统

三一重工股份有限公司&#xff0c;是由三一集团创建于1994年&#xff0c;通过打破国人传统的“技术恐惧症”坚持自主创新迅速崛起。2011年7月&#xff0c;三一重工以215.84亿美元的市值荣登英国《金融时报》全球市值500强&#xff0c;是迄今唯一上榜的中国机械企业。2012年1月&…

C++面向对象程序设计 - 文件操作与文件流

在实际应用中&#xff0c;常以磁盘文件作为对象&#xff0c;即能从磁盘文件读取数据&#xff0c;也能将数据输出到磁盘文件&#xff0c;磁盘是计算机的外部存储器&#xff0c;能够长期保留信息&#xff0c;能读能写&#xff0c;可以刷新重写等等。 在C中&#xff0c;文件操作通…

windows安装conda

1 Conda简介 Conda 是一个开源的软件包管理系统和环境管理系统&#xff0c;用于安装多个版本的软件包及其依赖关系&#xff0c;并在它们之间轻松切换。Conda 是为 Python 程序创建的&#xff0c;适用于 Linux&#xff0c;OS X 和Windows&#xff0c;也可以打包和分发其他软…

【stm32】stm32f407 ch340下载

一、接线 1、ch340 Vcc短接3v3 5v---------5v GND-----GND TX ------RX RX --------TX 2、stm32F407 如上图&#xff0c;我们需要进入isp下载模式&#xff0c;接线图如下 二、下载 使用FlyMcu选择你要下载的程序文件中的.hex文件&#xff0c; 然后配置图如下&#xff1…

vue开发网站--对文章详情页的接口内容进行处理

一、需求 接口返回的数据中既包含文字也包含图片&#xff0c;并且需要对图片进行处理&#xff08;设置最大宽度为100%并拼接域名&#xff09; 可以按照以下步骤进行操作&#xff1a; 二、代码 <template><div class"details"><div class"infos…