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

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

[复制链接]
STMCU小助手 发布时间:2022-7-2 15:26
一、打开cubemx# `, H. q$ a6 n& H2 h) W. \/ C
LED0和LED1连接在PB0和PB1上,刚好是TIM3的PWM通道3和通道4
1 E- V- y+ ]) S% ^. W4 r- i8 N. q+ g- W9 M* K! G5 p1 O
二、配置PWM参数
) a4 M1 Z, N) K" C, M& k开启TIM3的通道3和通道4
7 I$ M7 J* Q0 A( Q$ r {C24}EDHTIAGB~P9}{296FV.png
! E. ]5 O) a; `. M1 I
1 b  u3 D5 J& p' J" \5 e* k  @% o配置PWM的频率为108000000/(108*500)=20kHZ, |' E- p2 b+ k: O

9 m5 f: }0 X  N0 _% u 6_71I(1L0UUB1$Q3M6YG1`T.png
$ V* `' H& j/ y* c9 h/ W) q  M
  k) s1 e0 S' Y6 S2 V配置PWM通道3和通道4/ {  O* _" ^+ k1 [7 N  x! }; w* |

, _/ C3 x& T# j$ W [TPA1~C]Z3Q9YM}3Y4OI{KK.png . m9 S9 k8 h" g0 W* X9 ~& c
$ p% t" d/ w- e& \
在程序中改变pulse的值,即可改变占空比pulse的取值范围在0-count period之间( P  g: i1 p2 q9 f  S- }/ m( {
* u; E3 l  x  E7 A# ^) h
三、生成代码
2 J5 C( z, p0 G0 |. f在main函数中增加代码,开启PWM输出: I# K: d. I+ P6 \  a

3 N! q( s+ b( j7 A! e( G 20190411192042209.png * c) T- t( G5 j8 G9 y7 U8 L
2 b! a, S1 _1 K( u: x" w
在tim.c中增加pwm控制函数' l; E+ a; {; H) P
* b2 G  ~4 b: M/ T
  1. void SetPwm(uint16_t pwm1,uint16_t pwm2)
    9 z+ b5 o6 H( o! M. o- D
  2. {
    & X" u/ U: k% i5 }5 H) J' K  H+ s
  3.     TIM3->CCR3=pwm1;" j6 F' O7 w) k% ^0 K6 ]- f- {# Z# W) @
  4.     TIM3->CCR4=pwm2;
    , F! E) y! w0 V: w
  5. }
复制代码

8 H" r$ D) K- ~$ ^7 J也可以使用hal库进行修改,但这样比较复杂4 Z. R6 {$ d. H. V0 }0 L

' o+ K, e+ _6 {# S" a! q1 D
  1. void SetPwm(uint16_t pwm1,uint16_t pwm2)4 `) N% |; `& S$ P1 r
  2. {
    5 s" U  f9 A% r3 z& [; h: e& f8 G
  3.                 TIM_OC_InitTypeDef sConfigOC;
    2 r* y  ?( }( F# N& n4 q
  4.             sConfigOC.Pulse = pwm1;
    ; k/ S( E# g2 e; n' O  y3 }
  5.             HAL_TIM_PWM_ConfigChannel(&htim3, &sConfigOC, TIM_CHANNEL_3);" k% W" b) U0 Q
  6.             HAL_TIM_PWM_Start(&htim3, TIM_CHANNEL_3);  
    , M* f$ d* }, V4 I5 X$ N
  7.                  sConfigOC.Pulse = pwm2;' ^' @; l" L' s, Z* V" p* l& O- w9 q
  8.             HAL_TIM_PWM_ConfigChannel(&htim3, &sConfigOC, TIM_CHANNEL_4);
    : d5 O, M; i6 a/ l
  9.             HAL_TIM_PWM_Start(&htim3, TIM_CHANNEL_4);  ' P8 d* J1 x" A5 h9 g& e1 s& q
  10. }
    6 E5 M3 H' K7 R5 r/ I( `8 G: @
复制代码
% h$ n' z3 Q9 s: ^& e. k' j! j. p
在主函数添加呼吸灯代码,添加完成如下# ^1 Z" s3 Y. M$ w3 _) x' D

5 n+ B) S% _1 k0 K# o! w6 L A(9B_8`)JDM2O0~8Z8]Y3H6.png ( n1 Z  F" f0 E8 ?& T

6 `% c* T5 g" k0 \& r$ V$ w0 O& b& O7 f, M' {8 d
赞 收藏 评论0 发布时间:2022-7-2 15:26

举报

0个回答

所属标签

相似技术帖

官网相关资源

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