0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Robomaster-stm32-PWM学习笔记(stm32控制pwm输出)

冬至子 来源:RPK16笔记 作者:随弋 2023-07-24 10:26 次阅读

学习笔记:

脉冲宽度调制(PWM),是英文“Pulse Width Modulation”的缩写,简称脉宽调制,是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术,广泛应用在从测量、通信到功率控制与变换的许多领域中。

图片

图片

图片

  1. 将通用定时器分为四个部分:
    1-选择时钟 2-时基电路 3-输入捕获 4-输出比较

图片

图片

图片

图片

图片

图片

图片

图片

图片

图片

图片

图片

实践1-pwm-led闪烁

要求产生周期为200ms,占空比为50%的PWM信号来控制led灯。

1.cubemax配置

图片

图片

图片

由原理图可知,led引脚复用为tim5

图片

图片

图片

周期为200ms,占空比为50%,Tim5挂在APB1总线上,CLK = 84MHZ;假设PSC =8399,根据公式ARR = 1999,CRR = 1000.

图片

图片

生成代码

main.c 添加

/* USER CODE BEGIN 2 */
HAL_TIM_PWM_Start(&htim5,TIM_CHANNEL_1); //启动定时器5通道1输出周期为200ms,占空比50%得PWM信号。
  /* USER CODE END 2 */

将代码下载到开发板中,实验结果led每隔100ms闪烁。

实践2-PWM-呼吸灯

周期改为20ms,因为大于50hz使人眼不会察觉出闪烁现象。

占空比从0%-100%反复,从而实现呼吸灯。

根据公式可得,PSC=8399,ARR=199。

占空比从0%开始,所以CRR 的初值为 0,根据公式计算CCR = 200时,占空比为100%。

图片

图片

生成代码

mian.c 修改

/* USER CODE BEGIN 2 */

  uint16_t i =0; //CCR
  uint16_t step = 10; //步进值,使呼吸效果明显
  HAL_TIM_PWM_Start(&htim5,TIM_CHANNEL_1);//启动定时器5的通道1产生PWM


  /* USER CODE END 2 */


  /* Infinite loop */
  /* USER CODE BEGIN WHILE */
  while (1)
  {
    /* USER CODE END WHILE */
    //知识点:在for/while等循环内部定义的变量属于局部变量,当for循环结束以后,局部变量就会被销毁
    for(i=0;i<=200;i = i+step)
    {
      __HAL_TIM_SET_COMPARE(&htim5,TIM_CHANNEL_1,i);
      HAL_Delay(200);
    }



    /* USER CODE BEGIN 3 */
  }

实验现象,出现呼吸灯效果并反复。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • led
    led
    +关注

    关注

    240

    文章

    23129

    浏览量

    658323
  • led灯
    +关注

    关注

    22

    文章

    1592

    浏览量

    107824
  • PWM
    PWM
    +关注

    关注

    114

    文章

    5140

    浏览量

    213363
  • STM32
    +关注

    关注

    2265

    文章

    10870

    浏览量

    354716
  • 微处理器
    +关注

    关注

    11

    文章

    2247

    浏览量

    82308
  • 功率控制器
    +关注

    关注

    0

    文章

    26

    浏览量

    12318
  • 脉冲宽度调制

    关注

    7

    文章

    81

    浏览量

    13716
  • PWM波
    +关注

    关注

    0

    文章

    99

    浏览量

    16838
收藏 人收藏

    评论

    相关推荐

    STM32_PWM实验

    STM32 PWM实验,很好的学习资料,快来下载啊
    发表于 02-16 15:46 55次下载

    ALIENTEK_MINISTM32_实验8_PWM输出实验

    ALIENTEK MINISTM32 实验8 PWM输出实验,很好的资料,快来学习
    发表于 02-18 14:57 15次下载

    STM32PWM

    STM32F103输出PWM源码
    发表于 12-10 14:30 23次下载

    STM32各模块学习笔记

    GPIO...............................................15 STM32笔记之六 运行的必要硬件库 ........................................20 ST
    发表于 11-30 03:32 3142次阅读

    STM32_ TIM输出PWM波形

    STM32_TIM输出PWM波形
    的头像 发表于 04-08 11:09 8657次阅读
    <b class='flag-5'>STM32</b>_ TIM<b class='flag-5'>输出</b><b class='flag-5'>PWM</b>波形

    STM32单片机PWM输出学习

    STM32单片机PWM输出学习PWM原理:PWM表示脉冲宽度调制,它是一系列脉冲,这些脉冲将以方
    发表于 11-11 11:51 26次下载
    <b class='flag-5'>STM32</b>单片机<b class='flag-5'>PWM</b><b class='flag-5'>输出</b><b class='flag-5'>学习</b>

    STM32 CubeMX学习:5. 其他PWM设备

    STM32 CubeMX学习:5. 其他PWM设备 系列文章目录前期的准备点亮 LED闪烁 LED定时器闪烁LEDPWM控制LED亮度常见的PWM
    发表于 11-23 17:51 1次下载
    <b class='flag-5'>STM32</b> CubeMX<b class='flag-5'>学习</b>:5. 其他<b class='flag-5'>PWM</b>设备

    使用STM32输出PWM波形

    本文目的是通过在STM32平台上采用定时器的方法输出PWM波形,进而熟悉和掌握PWM的原理和产生。目录(一)PWM简介1.关于
    发表于 11-30 14:21 42次下载
    使用<b class='flag-5'>STM32</b><b class='flag-5'>输出</b><b class='flag-5'>PWM</b>波形

    STM32PWM与示波器实验

    、DAC简介2、DAC功能框图剖析3、正弦波表制作脚本4、引入工程文件5、使用示波器检验将一段数字音频歌曲数据转换为模拟音频波形输出参考资料STM32输出PWM波形1、
    发表于 12-02 13:21 24次下载
    <b class='flag-5'>STM32PWM</b>与示波器实验

    【Rt-Thread】STM32输出PWM

    主要记录了Rt-Thread 中STM32 输出PWM配置过程,通过设置不同频率PWM使蜂鸣器发出不同音调
    发表于 12-16 16:57 17次下载
    【Rt-Thread】<b class='flag-5'>STM32</b><b class='flag-5'>输出</b><b class='flag-5'>PWM</b>

    STM32CUBEIDE(11)----输出PWM及修改PWM频率与占空比

    本章STM32CUBEMX配置STM32F103输出PWM,并在示波器中查看效果。
    的头像 发表于 11-30 14:12 1.1w次阅读
    <b class='flag-5'>STM32</b>CUBEIDE(11)----<b class='flag-5'>输出</b><b class='flag-5'>PWM</b>及修改<b class='flag-5'>PWM</b>频率与占空比

    STM32学习笔记PWM互补输出(无刷直流电机驱动控制)

    最近科研训练在做无刷电机的控制。 需要达成的目的为CH1通道输出PWM波,CH1N通道输出高电平等。 算法采用六步换向算法,开环系统。 主控芯片选用
    发表于 03-08 15:20 22次下载
    <b class='flag-5'>STM32</b><b class='flag-5'>学习</b><b class='flag-5'>笔记</b>:<b class='flag-5'>PWM</b>互补<b class='flag-5'>输出</b>(无刷直流电机驱动<b class='flag-5'>控制</b>)

    STM32通过PWM控制电机速度

    STM32智能小车的实验中会用到定时器PWM输出,来改变直流电机的转速。分享本文了解如何通过PWM实现对电机速度的控制
    的头像 发表于 07-06 09:56 4945次阅读
    <b class='flag-5'>STM32</b>通过<b class='flag-5'>PWM</b><b class='flag-5'>控制</b>电机速度

    STM32PWM波形输出配置的大神总结

    STM32PWM波形输出配置的大神总结
    的头像 发表于 10-24 16:00 3625次阅读
    <b class='flag-5'>STM32</b>的<b class='flag-5'>PWM</b>波形<b class='flag-5'>输出</b>配置的大神总结

    STM32无法正常输出PWM信号的原因及解决方法

    无法正常输出PWM信号的问题。本文将探讨STM32无法正常输出PWM信号的原因,并提供解决方法。 一、引脚配置错误
    的头像 发表于 01-02 17:38 9107次阅读