使用STM32CubeMX软件配置定时器输出pwm

一.硬件资源

本次实验使用stm32f103c8t6单片机最小系统板来测试程序,其pwm输出的PA0管脚连接了示波器

 二.pwm的应用场合

全称Pulse Width Modulation:脉冲宽度调制(简称脉宽调制,通俗的讲就是调节脉冲的宽度),在电子电路中应用非常广泛,PWM有非常广泛的应用如电机调速,光源调光,开关电源等等场合都有应用

 三.STM32CubeMX软件配置

首先先新建工程,点击File按钮新建工程

搜索单片机型号并选择

 然后就进入了配置界面

 重点来了!在这里如果使用的是ST-Link下载器一定要在SYS中的Debug设置为Serial Wire不然下次在下载就不能使用SWD来下载了,不过串口1下载不影响(PS:注意串口下载时要BOOT1=0 BOOT0=1)RCC中配置为石英晶体振荡器

这边使用定时器2的通道1举例

使用STM32CubeMX软件配置定时器输出pwm_第1张图片

1 选择内部时钟

2 设置CH1为PWM模式

使用STM32CubeMX软件配置定时器输出pwm_第2张图片

计算PWM频率

Fpwm =Tclk / ((arr+1)*(psc+1))(单位:Hz)

arr是计数器值

psc是预分频值

这边使用最大值时钟频率Tclk = 72Mhz

72000000/1000*72=  1000Hz,即1KHz

使用STM32CubeMX软件配置定时器输出pwm_第3张图片

定时器的相关模式配置

Mode:这边选择PWM模式1(如果是模式2就是极性相反)

Pulse:占空比初始值先给0

Fast Mode:PWM快速模式我们这边不使用所以不使能

CH Polarity:设置PWM极性

使用STM32CubeMX软件配置定时器输出pwm_第4张图片

配置时钟树使用8MHZ的晶振经过倍频之后主频可以达到72MHZ

 准备导出配置注意路径不能有中文

右上角有一个按钮导出工程

打开keil文件在main中加入以下程序编译下载

HAL_TIM_PWM_Start(&htim2,TIM_CHANNEL_1);//使能定时器
__HAL_TIM_SetCompare(&htim2, TIM_CHANNEL_1, 500);//把占空比设置成500

按下复位按钮示波器上出现一个1khz占空比50%的波形了

总结:刚刚开始学习这款软件记录一下学习过程,有不对的地方请大家批评指正。

你可能感兴趣的:(智能消防车,stm32,嵌入式硬件,单片机)