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

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

[复制链接]
STMCU小助手 发布时间:2021-12-10 11:03
一、打开cubemx( K3 Q) j7 |  j0 T% _) r
LED0和LED1连接在PB0和PB1上,刚好是TIM3的PWM通道3和通道44 d) b9 T7 D# Z$ c
; j+ C! o! E( R8 t: c* F  f; ~
二、配置PWM参数3 P3 h" J  Q; b; s: a
开启TIM3的通道3和通道4
1 N0 a4 h% ~. v  F2 ?
9 ^; m8 T6 [0 b- Y3 x! k
20190411191426790.png
, p& O2 A4 w6 q- [

+ z9 ]) v2 ^% Y配置PWM的频率为108000000/(108*500)=20kHZ
  p" {7 }- s* E' q3 b$ b8 M! L! ?: p/ `; _* a" U
2019041119164611.png
$ L( ^8 G1 ]- [/ v6 }2 z) c6 s
: K2 A. R% ]) N; Q
配置PWM通道3和通道4
4 Y, e( U3 [8 y8 ~! F( z+ R
6 }8 R' ~6 a" x8 t% |
20190411191722584.png

+ N% ^4 L2 ?' F' G: v+ |
& }5 ~" D9 G2 l5 E" o在程序中改变pulse的值,即可改变占空比pulse的取值范围在0-count period之间
3 y5 X5 y3 ~' ]- _5 ?2 \# E/ N0 ~9 p
三、生成代码8 Y% r' Z- D5 }8 O+ ]0 j+ X
在main函数中增加代码,开启PWM输出
/ L8 ^7 v- Z  ?: y/ U
9 b6 H4 U* Y( ~' S4 S
20190411192042209.png
+ ]/ l3 q  j' x7 ]
' z8 l0 z+ L, y
在tim.c中增加pwm控制函数
0 D) k& y  f5 }$ `% r0 k* `  }3 K# F6 {2 Q7 s* ^! h  U0 V% [
  1. void SetPwm(uint16_t pwm1,uint16_t pwm2)3 l$ s8 h# U: ?  _# L: @: {
  2. {3 f% ]) O" U6 |! [
  3.     TIM3->CCR3=pwm1;
      b, z& ?1 _# V8 h' K5 e
  4.     TIM3->CCR4=pwm2;
    7 ^4 o. I" |2 V9 \$ V* @
  5. }
复制代码
9 a5 b$ t9 f. n7 q1 q9 ~" L% H
也可以使用hal库进行修改,但这样比较复杂% \- u; h/ [6 o; h% q
0 p6 ?( b. w2 M, V- n9 p
  1. void SetPwm(uint16_t pwm1,uint16_t pwm2)% B3 {0 T- u0 k- N  t1 A
  2. {1 T; x2 F  e  u+ @/ G9 u
  3.                 TIM_OC_InitTypeDef sConfigOC;
    * y; F7 }4 N6 U6 f
  4.             sConfigOC.Pulse = pwm1;4 n* F) w3 Z! ?3 S1 ~# B
  5.             HAL_TIM_PWM_ConfigChannel(&htim3, &sConfigOC, TIM_CHANNEL_3);. C5 }& O( v9 j2 M# g2 X$ r
  6.             HAL_TIM_PWM_Start(&htim3, TIM_CHANNEL_3);  * @8 Y' i& X6 `0 }, ?9 f6 {
  7.                  sConfigOC.Pulse = pwm2;
    $ J  F3 g0 g, E3 B! j
  8.             HAL_TIM_PWM_ConfigChannel(&htim3, &sConfigOC, TIM_CHANNEL_4);+ G: _$ q5 z. N7 v# ]
  9.             HAL_TIM_PWM_Start(&htim3, TIM_CHANNEL_4);  4 B) g: d/ d* S) _# o$ f8 f
  10. }
复制代码

/ |4 `, s% m& j9 f/ P在主函数添加呼吸灯代码,添加完成如下1 T& S! x/ c6 g' Q
- K7 W/ U4 s6 K) `& q  ~
20190411192840194.png
# b+ T. k' u& V# O+ B0 X. ]

9 }0 U5 N6 r$ }0 B四、下载代码观看现象
( |; G; a9 x  q" R$ x% Z将代码下载到开发板中可以看到LED0和LED1呈现出呼吸灯的效果: u. t' b( m8 O$ a. ?% b
: F1 K$ Q; N' l& a/ |& \
( ~) r; `; U- O3 Y$ s1 j( A
赞 收藏 评论0 发布时间:2021-12-10 11:03

举报

0个回答

所属标签

相似技术帖

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版