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

STM32CubeMX配置定时器实现1KHz的PWM输出

[复制链接]
STMCU-管管 发布时间:2020-10-16 15:13
STM32CubeMX配置定时器实现1KHz的PWM输出


一、STM32CubeMX
STM32CubeMX是ST公司推出的自动创建工程及初始化代码的工具,适用于旗下所有STM32系列产品。此软件需要安装JAVA运行环境。


二、TIM定时器
从参考手册可知STM32的定时器除了基本定时器(TIM6、TIM7)外,其他的都可以产生PWM输出,我们以TIM2定时器的CHANNEL2为例,输出1Khz的方波。

11.png

从定时器图框中可以看出主要相关部分是计数器时钟的选择、时基单元以及PWM输出。
12.png
在PWM输出模式下,当CNT(计数器当前值)小于CCRx(捕获/比较寄存器值)时,TIMx_CHx通道输出低电平;当CNT(计数器当前值)大于等于CCRx(捕获/比较寄存器值)时,TIMx_CHx通道输出高电平;因此,可以通过设置TIMx_ARR(自动重装值)确定周期、TIMx_CCRx寄存器设置占空比来调出固定的PWM波。
13.png

参考手册里这一块大概就是说,PWM计数模式分为向上计数和向下计数模式,当TIMx_CNT<TIMx_CCRx时PWM信号参考OCxREF为高,否则为低。如果TIMx_CCRx中的比较值大于自动重装载值(TIMx_ARR),则OCxREF保持为’1’。如果比较值为0,则OCxREF保持为’0’;在PWM模式1,当TIMx_CNT>TIMx_CCRx时参考信号OCxREF为低,否则为高。如果TIMx_CCRx中的比较值大于TIMx_ARR中的自动重装载值,则OCxREF保持为’1’。该模式下不能产生0%的PWM波形;当TIMx_CR1寄存器中的CMS位不为’00’时,为中央对齐模式(所有其他的配置对OCxREF/OCx信号都有相同的作用)。根据不同的CMS位设置,比较标志可以在计数器向上计数时被置’1’、在计数器向下计数时被置’1’、或在计数器向上和向下计数时被置’1’。TIMx_CR1寄存器中的计数方向位(DIR)由硬件更新,不要用软件修改它。
14.png
捕获/比较模式寄存器由TIMx_CCMR1和TIMx_CCMR2组成。TIMx_CCMR1控制CH1和CH2,TIMx_CCMR2控制CH3和CH4。该寄存器的某些位在不同模式下功能不一样,上面一层对应输出而下面一层对应输入。其中模式设置OCxM位,此位由3位组成,一共可以配置成7种模式,我们使用的是PWM模式,所以这三位必须为110/111。其作用在PWM输出模式下,确定PWM的模式、使能相应的预装载寄存器等操作。
15.png
16.png

Bit1和Bit0在PWM输出模式下,确定PWM的的输出极性和输出使能。
17.png

TIMx_CCR1寄存器确定PWM输出模式下比较的值。

三、STM32CubxMX配置
使用定时器PWM功能,选择TIM2 CLock Source为Internal Clock,通道2选择PWM Generation CH2。

18.png
参数配置如图
19.png
然后时钟源等配置不做过多说明,可以参见工程代码中的配置情况,点击生成代码,使用Keil打开。


四、代码修改
Keil5打开工程代码后,添加调用HAL_TIM_PWM_Start(&htim2, TIM_CHANNEL_2)函数,定义变量uint16_t dutyCycle = 0,然后while循环函数如下:
  1. while (1)
  2.   {
  3.     /* USER CODE END WHILE */

  4.     /* USER CODE BEGIN 3 */
  5.     while(dutyCycle < 1000)
  6.     {
  7.       dutyCycle++;
  8.       __HAL_TIM_SET_COMPARE(&htim2, TIM_CHANNEL_2, dutyCycle);
  9.       HAL_Delay(1);
  10.     }
  11.     while(dutyCycle)
  12.     {
  13.       dutyCycle--;
  14.       __HAL_TIM_SET_COMPARE(&htim2, TIM_CHANNEL_2, dutyCycle);
  15.       HAL_Delay(1);
  16.     }
  17.   }
复制代码


编译下载,使用示波器捕获即可看到1Khz的方波。

收藏 3 评论1 发布时间:2020-10-16 15:13

举报

1个回答
Fily 回答时间:2020-10-19 10:24:32
提示: 作者被禁止或删除 内容自动屏蔽

所属标签

相似分享

官网相关资源

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