目录
前言:
一.呼吸灯
二.跑马灯
三. 总结
前言:
本篇的主要内容是关于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 呼吸灯仿真时,需要对微控制器的特性和编程有深入了解,通过精心的设计和调试来实现理想的呼吸灯效果。