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

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

[复制链接]
STMCU小助手 发布时间:2021-12-10 11:03
一、打开cubemx
* d, T* r+ U+ ?* M  kLED0和LED1连接在PB0和PB1上,刚好是TIM3的PWM通道3和通道4
& z" U/ R5 Z  d2 Y
$ l! ]/ z$ s  S二、配置PWM参数  i8 a2 q( B. \& X% G
开启TIM3的通道3和通道4
! h' _/ m& L0 c2 s
. n- D5 f' y9 n
20190411191426790.png

- U3 f1 _1 A$ a$ e' Z; r. v: D& d; H7 P  t0 \
配置PWM的频率为108000000/(108*500)=20kHZ
' m3 x1 n- G- L  C* y3 t( s, _1 f/ `2 e: p; b# d5 y
2019041119164611.png

% V2 E. f# I( J/ ?8 K
) ^! a7 z' p4 j1 K/ I7 i0 _1 @配置PWM通道3和通道4
  p8 V. P$ _" n7 \
# a6 K0 T; A6 B7 F- p5 M
20190411191722584.png

' t; e4 Z! s5 s/ @4 ?: c, r$ b+ ~; ]7 A4 |  E! A8 g
在程序中改变pulse的值,即可改变占空比pulse的取值范围在0-count period之间
3 a1 l3 L* }8 Z  }
0 W* U2 e8 S, v: d" a: \" v6 {" F三、生成代码* M7 ?. |2 h! w3 ~: G1 ]
在main函数中增加代码,开启PWM输出# ]# ^5 K$ {; `

% F5 O/ I4 V# J3 j) m( {
20190411192042209.png

7 Z4 t' \) }! D0 D' e! w" c0 y& S, j2 ~
在tim.c中增加pwm控制函数% M! m- a' \5 y4 I; d! ^! }( R
0 e) w$ x  \( d- p8 }% r
  1. void SetPwm(uint16_t pwm1,uint16_t pwm2)( z8 a% U; j: F, @
  2. {: p3 R; N6 N: ^. q
  3.     TIM3->CCR3=pwm1;, h# d7 B% P, m5 p6 V  l  S$ D. ~
  4.     TIM3->CCR4=pwm2;
    ) ^# j1 e: r0 u6 y% Z3 _
  5. }
复制代码

+ P( T+ _* x5 [# F. D& M5 g% ~也可以使用hal库进行修改,但这样比较复杂9 B; w0 U8 f: \; e' O' d' A

: R: x  V3 D. w% i
  1. void SetPwm(uint16_t pwm1,uint16_t pwm2)
    / U& W, D7 f, E6 p
  2. {
    # q, y, A& s* ^$ Z
  3.                 TIM_OC_InitTypeDef sConfigOC;% k9 {4 m& x6 h2 L6 S5 K- t
  4.             sConfigOC.Pulse = pwm1;
    : o' g- W* u3 U: e0 v
  5.             HAL_TIM_PWM_ConfigChannel(&htim3, &sConfigOC, TIM_CHANNEL_3);
    % H) D5 A1 `2 {) @5 k
  6.             HAL_TIM_PWM_Start(&htim3, TIM_CHANNEL_3);  " O4 s' K; B" d0 K% T, ~, ~3 h
  7.                  sConfigOC.Pulse = pwm2;
    7 Q9 A. h/ E9 g+ U0 f
  8.             HAL_TIM_PWM_ConfigChannel(&htim3, &sConfigOC, TIM_CHANNEL_4);( v2 u! Z1 C  M7 M/ |, k
  9.             HAL_TIM_PWM_Start(&htim3, TIM_CHANNEL_4);  
    $ V9 s$ P$ N  x0 e7 d& Y5 ?9 d
  10. }
复制代码

( K. ]0 o9 |2 ^1 n$ h, \: ~在主函数添加呼吸灯代码,添加完成如下
$ B8 g0 A- m$ U& Q" V3 g* V* S  O7 B' q  f; s& `3 v4 r
20190411192840194.png

4 f* x# F$ |* D
, G. S2 O- R* c8 C$ G6 R四、下载代码观看现象
+ @/ ~/ E4 V  K将代码下载到开发板中可以看到LED0和LED1呈现出呼吸灯的效果# M' ~# H1 i# h9 ~1 f5 |

, G- j0 p$ \5 c# h9 ?; m+ i8 e4 l. l0 n/ `& D  l
收藏 评论0 发布时间:2021-12-10 11:03

举报

0个回答
关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版