当前位置: 首页 > 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 呼吸灯仿真时,需要对微控制器的特性和编程有深入了解,通过精心的设计和调试来实现理想的呼吸灯效果。

http://www.lryc.cn/news/366426.html

相关文章:

  • 【AI基础】第三步:纯天然保姆喂饭级-安装并运行chatglm2-6b
  • Spring Security系列之Handler
  • Thinkphp使用Elasticsearch查询
  • 开源日志分析平台ELK实战应用
  • css基本操作及使用
  • SpringBoot+Vue幼儿园管理系统(前后端分离)
  • MFC实现子控件focus焦点上下移动父控件ListView和Gridview也跟着向上下移动
  • 几何关系运算处理
  • http和https分别是什么?区别是什么?
  • 第一周:计算机网络概述(上)
  • 谷歌AI搜索变革,中国引擎能跟上步伐?
  • 【机器学习300问】110、什么是Lasso回归模型?
  • Qt实现麦克风音频输入保存wav文件
  • docker_如何推送镜像到仓库(hub.docker.com)
  • 【Python】认识 Python
  • Vue根据后端返回的tabList动态渲染组件信息
  • 二轴机器人大米装箱机:技术创新引领智能包装新潮流
  • rtl8723DU移植 android4.4 4418 (第二部分蓝牙部分)
  • 【Vue】组件的存放目录问题
  • 开发PlugLink插件:自动生成并发布博客文章
  • Ant Design Pro
  • 加密软件好用的是哪个?为什么这么多人说迅软DSE加密软件好用?
  • 大模型日报2024-06-07
  • Day49 动态规划part08
  • React -- memo允许你的组件在 props 没有改变的情况下跳过重新渲染。
  • 路径
  • 逆波兰表达式
  • git(其六)--总结
  • kafka-生产者拦截器(SpringBoot整合Kafka)
  • 每日一题:聊聊 Redis 过期键的删除策略