你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32CUBEMX(1)--PWM

[复制链接]
STMCU小助手 发布时间:2022-8-19 15:45
概述
本篇文章主要介绍如何使用STM32CubeMX输出PWM,并制作呼吸灯效果。

硬件准备
首先需要准备一个开发板,这里我准备的是NUCLEO-F030R8的开发板:

20200604115410161.png

选择芯片型号

2020060411552214.png

配置时钟源

HSE与LSE分别为外部高速时钟和低速时钟,在本文中使用内置的时钟源,故都选择Disable选项,如下所示:

2020060411565088.png

配置时钟树

STM32F0的最高主频到48M,所以配置48即可:

20200604115810619.png

PWM配置
本次实验使用的是TIM3的通道1来输出PWM波,选择时钟,并且选择通道1的PWM模式。
20200604120225610.png

配置PWM波的参数

20200604120518563.png

PWM频率计算如下所示

20200604121517190.png

在上面配置TIM3参数,预分频系数设置为48-1, 自动重载值设置为1000-1,那么PWM频率为48,000,000/((48-1+1)*(1000-1+1))=1000Hz,即1KHz。

注意载芯片示意图上会看到下图PA6就是TIM3的通道1PWM波输出口。

20200604141929338.png

生成工程设置
注意在生产工程设置中不能出现中文,不然会报错。

2020060414215398.png

代码生成设置
最后设置生成独立的初始化文件:

20200604142313327.png

生成代码

20200604142359253.png

配置keil

20200604142614479.png

代码

在main.c中,先定义两个变量存储设置的占空比和模式
  1.   /* USER CODE BEGIN 1 */
  2. uint16_t pwm_i =0;//占空比
  3. uint16_t pwm_mode =0;//呼吸灯模式,1为增加,2为减少
  4.   /* USER CODE END 1 */
复制代码

使能TIM3的PWM Channel1 输出。

  1.   /* USER CODE BEGIN 2 */
  2.     //使能TIM3的PWM Channel1输出。
  3.     HAL_TIM_PWM_Start(&htim3,TIM_CHANNEL_1);
  4.   /* USER CODE END 2 */
复制代码

然后在while(1)中改变pwm_i的值,来实现呼吸效果。


  1.   /* USER CODE BEGIN WHILE */
  2.   while (1)
  3.   {
  4.         if(pwm_mode)
  5.         {
  6.                 __HAL_TIM_SET_COMPARE(&htim3, TIM_CHANNEL_1, pwm_i--);
  7.                 if(pwm_i==0)
  8.                 pwm_mode=0;
  9.         }
  10.         else
  11.         {
  12.                 __HAL_TIM_SET_COMPARE(&htim3, TIM_CHANNEL_1, pwm_i++);
  13.                 if(pwm_i==1000)
  14.                 pwm_mode=1;
  15.         }
  16.         HAL_Delay(1);               

  17.     /* USER CODE END WHILE */
  18.     /* USER CODE BEGIN 3 */
  19.   }
  20.   /* USER CODE END 3 */
复制代码
演示效果

20200604142957273.gif


收藏 评论0 发布时间:2022-8-19 15:45

举报

0个回答

所属标签

相似分享

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版