目录

  • 前言
  • 一、PWM
  • 二、工程代码
    • 1.用STM32CubeMx创建工程
      • 创建新项目
      • 配置RCC和SYS
      • 配置定时器TIME3
      • 配置定时器TIM4
      • 配置时钟
      • 生成项目
    • 2.用Keil编写代码
    • 3.硬件连接
    • 4.烧录
    • 5.效果

前言

本篇博客,使用TIM3和TIM4,分别输出一个PWM波形,PWM的占空比随时间变化,去驱动你外接的一个LED以及最小开发板上已焊接的LED(固定接在 PC13 GPIO端口),实现2个 LED呼吸灯的效果。

一、PWM

  • 含义
    PWM(Pulse Width Modulation)即脉冲宽度调制,简称脉宽调制。它是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术;它是一种模拟控制方式,根据相应载荷的变化来调制晶体管基极或MOS管栅极的偏置,来实现晶体管或MOS管导通时间的改变,从而实现开关稳压电源输出的改变。
  • 基本原理
    占空比:是一个脉冲周期内,高电平的时间与整个周期时间的比例。
    在一定的频率下,通过不同的占空比 即可得到不同的输出模拟电压。
    PWM就是在合适的信号频率下,通过一个周期里改变占空比的方式来改变输出的有效电压。
    频率很高时,看不到闪烁,占空比越大,LED越亮;
    频率很低时,可看到闪烁,占空比越大,LED越亮。
    所以,在频率一定下,可以用不同占空比改变LED灯的亮度。 使其达到一个呼吸灯的效果。

二、工程代码

1.用STM32CubeMx创建工程

创建新项目

点击ACCESS TO MCU SELECTOR,在Part Number里选择我们的核心板(STM32F103C8)

配置RCC和SYS

配置定时器TIME3

勾选Internal Clock(内部时钟)
通道1选择:PWM Generation CH1(PWM输出通道1)
Prtscaler (定时器分频系数) : 71
Counter Mode(计数模式):Up(向上计数模式)
Counter Period(自动重装载值) : 500
CKD(时钟分频因子) :No Division (不分频 )

配置定时器TIM4

与TIME3相同

配置时钟

点击CLOCK CONFIGURATION,然后将HCLK改为72Mhz,点击回车

生成项目


2.用Keil编写代码

在main.c中定义一个全局变量

uint16_t pwm=0;   //占空比


打开PWM通道:
在主函数中添加两行代码

    HAL_TIM_PWM_Start(&htim3,TIM_CHANNEL_1); HAL_TIM_PWM_Start(&htim4,TIM_CHANNEL_1);


在while循环中写入调用代码

while (pwm< 500){pwm++;__HAL_TIM_SetCompare(&htim3, TIM_CHANNEL_1, pwm);  __HAL_TIM_SetCompare(&htim4, TIM_CHANNEL_1, pwm);           HAL_Delay(1);}while (pwm){pwm--;__HAL_TIM_SetCompare(&htim3, TIM_CHANNEL_1, pwm);    __HAL_TIM_SetCompare(&htim4, TIM_CHANNEL_1, pwm);  HAL_Delay(1);}HAL_Delay(200);

3.硬件连接

USB转TTL
3V3 —> 3V3
GND —> GND
RXD —> A9
TXD —> A10

LED灯连接
LED灯短脚 —> A6
LED灯长脚 —> 3V3
PB6 —> PC13

4.烧录

5.效果

使用STM32输出PWM波形并驱动LED呼吸灯相关推荐

  1. STM32输出PWM波形以及实现LED呼吸灯

    目录 一.PWM的简介 1.PWM的定义 2.PWM的优点 3.PWM的几种控制方法 (1)等脉宽PWM法 (2)随机PWM (3)SPWM法 4.PWM的主要参数 (1)PWM占空比 (2)PWM的 ...

  2. 嵌入式学习——使用定时器输出PWM波形,实现 LED呼吸灯的效果

    嵌入式学习--使用定时器输出PWM波形,实现 LED呼吸灯的效果 目录 嵌入式学习--使用定时器输出PWM波形,实现 LED呼吸灯的效果 1. 任务要求 2 PWM波介绍, 2.1 什么是PWM(Pu ...

  3. 嵌入式学习--使用定时器输出PWM波形,实现LED呼吸灯的效果

    目录 1.任务要求 2.PWM介绍 关于PWM的定义 分频-计数时钟 计数器 定时器输出PWM的原理 定时器的初始化 3.配置STM32CubeMX 4.keil5的代码 5.运行结果 6.心得与体会 ...

  4. 嵌入式——使用定时器输出PWM波形,实现 LED呼吸灯的效果

    一.实验要求: 使用TIM3和TIM4,分别输出一个PWM波形,PWM的占空比随时间变化,去驱动你外接的一个LED以及最小开发板上已焊接的LED(固定接在 PC13 GPIO端口),实现2个 LED呼 ...

  5. STM32输出PWM波形及LED呼吸灯

    目录 一.PWM的介绍 1.概述 2.优点 3.主要产生方法 SPWM法 1.等面积法 2.硬件调制法 3.软件生成法 4.PWM电路图 5.PWM基本原理 二.cubemx项目的建立 1.选择芯片S ...

  6. 使用STM32输出PWM波形实现2个 LED呼吸灯

    目录 一.PWM简介 二.STM32配置PWM输出 三.keil仿真 四.烧录运行 五.现象 六.总结 七.参考链接 一.PWM简介 含义 PWM(Pulse Width Modulation)即脉冲 ...

  7. Arduino ESP32利用PWM实现板载LED呼吸灯效果

    Arduino ESP32利用PWM实现板载LED呼吸灯效果 LEDC简介 LED控制(LEDC)外围设备主要用于控制LED的强度,尽管它也可以用于生成PWM信号用于其他目的.它具有16个通道,可以生 ...

  8. 使用STM32输出PWM波形LED呼吸灯的效果

    文章目录 前言 一.PWM简介 1.1 关于PWM 1.2 使用步骤 二.使用STM32CUBEMX实现2个 LED呼吸灯的效果 2.1.配置环境 2.2 代码配置 2.3.输出PWM波形 2.4 呼 ...

  9. STM32输出PWM波形并实现呼吸灯

    文章目录 一.环境配置 二.PWM简介 三.使用STM32CubeMX配置工程 四.使用Keil配置代码 五.运行效果 六.用Keil自带的逻辑仿真器观察占空比 七.总结 八.参考资料 一.环境配置 ...

最新文章

  1. 南开校长曹雪涛团队12篇论文被调查“可信性”,此前被举报实验图片有PS痕迹...
  2. POJ3666:Making the Grade——题解
  3. 『ExtJS』01 009. ExtJS 4 方法重载
  4. 先入为主与刚刚好(自省)
  5. 9.3 低秩矩阵分解-机器学习笔记-斯坦福吴恩达教授
  6. 备考一天速通计算机三级网络技术
  7. ajax form表单提交_开发日志:金数据表单自动提交脚本
  8. 【区块链基础知识系列】 第6课 区块链之分片技术(sharding)-区块链扩容问题的良方
  9. day36 Pyhton 网络编程03
  10. 云南干旱 谁人受损 心有戚戚 愤怒哀伤
  11. AndroidStudio_androidstudio连接华为 HUAWEI Mate平板_调试测试---Android原生开发工作笔记143
  12. upc 9325 序列本质
  13. [最小割] Luogu P4662 黑手党
  14. wps怎么写分段函数_wps宏怎么写
  15. 利用智能ABC漏洞关闭网吧驱动防火墙
  16. Datawhale组队学习周报(第033周)
  17. linux实现文件共享的方式,Linux文件共享的实现方式
  18. 三炮的三舅走了,才发觉日子真的不经念叨呀!
  19. 人脸识别与美颜算法实战-图像特效
  20. U盘安装OS X Yosemite 10.10.5系统

热门文章

  1. 2-3 变量 数据类型 运算符
  2. 吴军博士人生进阶三部曲:《见识》
  3. 薛蛮子表态ICO监管:治理乱象越快越好,各界应尽早投入区块链技术研发
  4. python中clear函数_04-Python函数
  5. python闯关训练营怎么样3.0_【新升级】3周!0基础Python量化投资!闯关式学习打卡,解锁新技能!...
  6. 浪浪潮信息为数据中心实现绿色低碳提供强劲的“引擎”
  7. ISO9001在讲什么?过程方法和风险思维
  8. win10添加软件开机启动
  9. 计算机复杂性的量度标准是什么意思,复杂度
  10. 又 404 了,怎么办?