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

【经验分享】STM32F7学习笔记(六)-PWM

[复制链接]
STMCU小助手 发布时间:2021-12-10 11:03
一、打开cubemx
LED0和LED1连接在PB0和PB1上,刚好是TIM3的PWM通道3和通道4

二、配置PWM参数
开启TIM3的通道3和通道4

20190411191426790.png


配置PWM的频率为108000000/(108*500)=20kHZ

2019041119164611.png


配置PWM通道3和通道4

20190411191722584.png


在程序中改变pulse的值,即可改变占空比pulse的取值范围在0-count period之间

三、生成代码
在main函数中增加代码,开启PWM输出

20190411192042209.png


在tim.c中增加pwm控制函数

  1. void SetPwm(uint16_t pwm1,uint16_t pwm2)
  2. {
  3.     TIM3->CCR3=pwm1;
  4.     TIM3->CCR4=pwm2;
  5. }
复制代码

也可以使用hal库进行修改,但这样比较复杂

  1. void SetPwm(uint16_t pwm1,uint16_t pwm2)
  2. {
  3.                 TIM_OC_InitTypeDef sConfigOC;
  4.             sConfigOC.Pulse = pwm1;
  5.             HAL_TIM_PWM_ConfigChannel(&htim3, &sConfigOC, TIM_CHANNEL_3);
  6.             HAL_TIM_PWM_Start(&htim3, TIM_CHANNEL_3);  
  7.                  sConfigOC.Pulse = pwm2;
  8.             HAL_TIM_PWM_ConfigChannel(&htim3, &sConfigOC, TIM_CHANNEL_4);
  9.             HAL_TIM_PWM_Start(&htim3, TIM_CHANNEL_4);  
  10. }
复制代码

在主函数添加呼吸灯代码,添加完成如下

20190411192840194.png


四、下载代码观看现象
将代码下载到开发板中可以看到LED0和LED1呈现出呼吸灯的效果


收藏 评论0 发布时间:2021-12-10 11:03

举报

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