PWM呼吸灯(小白版)
- 什么是呼吸灯: 就是led从亮慢慢到暗再慢慢变亮的一个过程。可以通过延时长短的方法来实现呼吸灯效果,但是这里我们用的是PWM波来实现呼吸灯效果。
- PWM简单介绍:PWM也叫脉冲宽度调制,可以通过改变占空比来达到想要的效果,废话不多说直接上代码。
- 代码部分:
void Init_pwm(u16 arr,u16 psc)
{
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3|RCC_APB2Periph_AFIO,ENABLE);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);//使能或者失能APB2外设时钟
GPIO_PinRemapConfig(GPIO_PartialRemap_TIM3, ENABLE); //部分重映射使用GPIO_PartialRemap_TIM3//NVIC_InitTypeDef NVIC_InitStructure;
TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
GPIO_InitTypeDef GPIO_InitStructure;
TIM_OCInitTypeDef TIM_OCInitStructure;
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;//最高输出速率50MHz
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;//复用推挽输出
GPIO_Init(GPIOB, &GPIO_InitStructure);//初始化外设GPIOx寄存器
TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1;//TDTS = Tck_tim
TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;//向上计数模式
TIM_TimeBaseStructure.TIM_Prescaler = psc;//预分频值
TIM_TimeBaseStructure.TIM_Period = arr;//在下一个更新事件装入活动的自动重装载寄存器周期的值
TIM_TimeBaseInit(TIM3,&TIM_TimeBaseStructure);//初始化
TIM_OCInitStructure.TIM_OCMode=TIM_OCMode_PWM2;
TIM_OCInitStructure.TIM_OCPolarity=TIM_OCPolarity_High;
TIM_OCInitStructure.TIM_OutputState=TIM_OutputState_Enable;
TIM_OC2Init(TIM3,&TIM_OCInitStructure);
TIM_OC2PreloadConfig(TIM3,TIM_OCPreload_Enable);
TIM_Cmd(TIM3, ENABLE);//使能或者失能TIMx外设
} 注意事项:这里我用的是我的led灯(PB5)是定时器3的通道2中,需要重映射,如下图:
所以,这里我们要打开AFIO时钟以及重映射(如果你的定时器和通道不是在最右边而是在旁边这一格 也就是默认复用功能 就不需要下面的代码),也就是:RCC_APB1PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);
GPIO_PinRemapConfig(GPIO_PartialRemap_TIM3, ENABLE);
最后,就是main里面的代码:
u16 t=1,k=1;
Init_pwm(899,0);//PWM frequency=72000000/900=80KHz根据需要设置周期
while(1)
{
delay_us(100);
if(k)t++;
else t--;
if(t>300)k=0;
if(t==1)k=1;
TIM_SetCompare2(TIM3,t);//通过改变占空比来达到呼吸灯效果
}
源代码工程:
链接:https://pan.baidu.com/s/1wzoXsMTTOY8EUtZqv5nE8A?pwd=1028
提取码:1028
PWM呼吸灯(小白版)相关推荐
- LabVIEW控制Arduino实现PWM呼吸灯(基础篇—5)
目录 1.实验目的 2.实验环境 3.程序设计 4.实验演示 1.实验目的 利用LIAT中的模拟I/O函数库,通过LabVIEW和Arduino Uno控制板实现LED灯亮度的调节,产生灯会呼吸的效果 ...
- STM32F030C8T6单片机PWM呼吸灯寄存器配置
STM32F030C8T6单片机PWM呼吸灯寄存器配置: TIM3_CR1:控制寄存器 BIT8~BIT9:CKD 与外部输入时钟有关,不使用外部时钟输入,所以不操作BIT8~BIT9,设置为00 B ...
- FPGA项目三:PWM呼吸灯
文章目录 第一节 项目背景 第二节 设计目标 第三节 设计实现 3.1顶层设计 3.2 信号设计 3.3 信号定义 第四节 综合和上板 4.1 新建工程 4.2 综合 4.3 配置管脚 4.4 再次综 ...
- 赛元微SC92F7352 PWM呼吸灯应用
赛元微SC92F7352 PWM呼吸灯应用 单片机脚位图 #include <SC92F735X_C.H> #include "intrins.h" #define u ...
- 基于FPGA开发板使用Verilog设计PWM呼吸灯实验
基于FPGA开发板使用Verilog设计PWM呼吸灯实验 1,实验原理 2,实验模块设计 2.1 RTL设计,呼吸灯模块设计 2.2,测试数据,下载到FPGA开发板板级的数据 2.3,两个模块综合的n ...
- STM32 CubeMx(二)定时器中断和PWM呼吸灯
STM32 CubeMx(一)时钟树配置与GPIO输入输出 文章目录 1.定时器 1.1 定时器概念 1.2 定时器分类 1.3 定时器功能 1.4 配置过程和编写代码 1.5 代码分享 2.PWM产 ...
- 【Verilog HDL 训练】第 10 天(PWM 呼吸灯)
5月8日 PWM 用verilog实现PWM控制呼吸灯.呼吸周期2秒:1秒逐渐变亮,1秒逐渐变暗.系统时钟24MHz,pwm周期1ms,精度1us. 今天的题目我是第一次见,答案借鉴大神的:Veril ...
- 软件模拟PWM——呼吸灯小程序的理解
呼吸灯就是类似人的呼吸一样,一呼一吸,灯的变化是从亮到灭再到亮的过程,是一个循序渐进的过程,而不是一个跳变. 通过软件模拟PWM,可以达到呼吸灯的效果. PWM即脉冲宽度调制,简单地说,就是一段时间为 ...
- OpenWrt PWM呼吸灯
欢迎使用Markdown编辑器 我想在Linkit Smart MT7688上使用PWM做个呼吸灯,使用的内核版本OpenWrt,chaos_calmer 15.05固件,参考的小鱼儿的博客.步骤如下 ...
- stm32定时器输出pwmIO口模拟pwm——呼吸灯
文章目录 前言 一.pwm(脉冲宽度调制) 1.基本原理 2.PWM的优点 3.PWM波的控制方法 二.定时器的相关介绍 1.stm32定时器 2.通用定时器计数模式 3.定时器的基本工作原理 三.定 ...
最新文章
- Nature: 海洋病毒对环境基因组和潜在的生物地球化学影响
- php 实现tab切换_微信小程序实例:实现顶部tab切换以及滑动切换时导航栏会随着移动的效果(代码)...
- QT中利用Qlabel显示当前的时间:年-月-日-时-分-秒-星期
- C:如何分解整数(从末位往前取以及从首位往后取)
- 数据结构入门学习笔记-1
- Spring boot变量的初始化顺序
- IPSEC的NAT兼容性
- 的向上取整函数_计算机二级Excel常用函数解析
- 你越努力,越没有领导潜力
- 关于哈希,分布式哈希表,一致性哈希
- sh执行文件 参数传递_shell中脚本参数传递的两种方式
- EXCEL 宏 拆分数据表 VBA 视频教程下载
- 2023年前实现大型工业企业5G应用渗透率超35%!模组企业如何保驾护航?
- 【PMP】PMBOK 笔记 第3章 项目管理过程
- 平面设计的核心本质是什么
- overleaf/latex 使用IEEE tran模板同名作者用横线替代
- android 取消蓝牙配对框 实现自动配对,Android 取消蓝牙配对框实现自动配对功能...
- 破解网页禁用鼠标右键方法
- python实现直播功能rtmo_30 行 Python 代码实现 Twitch 主播上线实时通知
- java帮助文档mye_【SpringMVC】使用Myeclipse创建SpringMVC项目【超详细教程】
热门文章
- Using insecure protocols with repositories(已解决)
- requested an insecure resource的解决方法
- matlab飞思卡尔工具包,IMX6开发板飞思卡尔系统烧写工具MFGTool2工具详解-迅为电子...
- 重构分析21: 被拒绝的遗赠(Refused Bequest)
- AMiner发布2022 AI 2000人工智能最具影响力学者名单
- 朱晔的互联网架构实践心得S2E6:浅谈高并发架构设计的16招
- 5G相关协议下载路径
- GPS定位准确度CEP、RMS
- 在线计算机表格制作,excel表格制作,教您excel怎么制作表格
- 柔性电流传感器(柔性电流探头)的工作原理和特点是什么?