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

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

[复制链接]
STMCU小助手 发布时间:2021-12-10 11:03
一、打开cubemx! x& P5 W- f# C7 p( r9 z. v+ ^
LED0和LED1连接在PB0和PB1上,刚好是TIM3的PWM通道3和通道4
) ]7 c% m% ]# `) m; L7 Z* R- K* o! _9 d$ X: {4 M+ Q/ Z3 k
二、配置PWM参数
8 a* T' I, L" N- o8 W4 j开启TIM3的通道3和通道4
* `8 E3 j( M+ K% ]7 b9 i* ]) H5 M8 C" }, T
20190411191426790.png

+ c5 X. o2 j! I% M/ q/ |' ~  @% c0 ^2 [  Y6 w- q& M
配置PWM的频率为108000000/(108*500)=20kHZ3 a& i* F* u5 U5 S6 d' w: T
; n8 N* K( g3 {
2019041119164611.png
  `2 V$ G+ ]9 M! u4 }

' O& f& d  u2 r! W& R5 l4 B* j配置PWM通道3和通道4- r  C' ?8 b5 r" S, j- _( m
5 q  L1 A- H) N6 L0 J( N
20190411191722584.png

7 y7 b, z0 O! F
% w; k0 D9 q$ C& j  n" V7 b在程序中改变pulse的值,即可改变占空比pulse的取值范围在0-count period之间
7 w$ t( Q& y& y) |% j1 d5 q4 c* O2 t4 T. [! S* a9 t9 k5 e
三、生成代码
# e9 `2 M, g9 F  S7 H2 `8 R在main函数中增加代码,开启PWM输出
* T6 k2 Z: }% g
$ ~; ^- W7 b5 \* B/ a
20190411192042209.png
5 u' j+ c, M4 w7 w; C7 h

4 h$ F5 b" d' ~6 K" g3 z在tim.c中增加pwm控制函数
% {- G) ]6 H  ~/ W4 A3 `6 N8 H4 J" a* h" R4 ?' D
  1. void SetPwm(uint16_t pwm1,uint16_t pwm2)
    . m" q9 |' S  u0 X. b8 }
  2. {& @, o9 c/ C1 W! K  }
  3.     TIM3->CCR3=pwm1;
    2 F; K3 L5 g: E, j% m) q
  4.     TIM3->CCR4=pwm2;
    $ m# q* v6 H  L  u
  5. }
复制代码
& k0 G. o9 @9 C- R( @$ P9 X
也可以使用hal库进行修改,但这样比较复杂
7 [2 ?' y" O$ r! ]( O* V! b$ [, B$ F. r7 U6 a6 t4 Q7 t# c
  1. void SetPwm(uint16_t pwm1,uint16_t pwm2)# N1 }: a0 b7 X$ f8 T4 @
  2. {
    / q8 y" g% ?8 u: K7 R4 c
  3.                 TIM_OC_InitTypeDef sConfigOC;
    / n9 c0 ?5 M4 }3 B7 f) p9 b
  4.             sConfigOC.Pulse = pwm1;: ^5 g2 {2 s0 A/ I. [0 a
  5.             HAL_TIM_PWM_ConfigChannel(&htim3, &sConfigOC, TIM_CHANNEL_3);0 S6 W2 B* E! y! v2 R( Q
  6.             HAL_TIM_PWM_Start(&htim3, TIM_CHANNEL_3);  ; V4 y! P9 R3 Z4 b$ U1 E
  7.                  sConfigOC.Pulse = pwm2;
    * w/ x; T* `1 I2 [, V+ q* O
  8.             HAL_TIM_PWM_ConfigChannel(&htim3, &sConfigOC, TIM_CHANNEL_4);6 m+ ^. b  `! B" T8 `8 [2 Z( B7 M
  9.             HAL_TIM_PWM_Start(&htim3, TIM_CHANNEL_4);  6 S: C1 r- @3 @; t" N& f% b
  10. }
复制代码

: g9 k0 |1 ~' `$ X在主函数添加呼吸灯代码,添加完成如下
" P( \9 M6 h* T( z' W. u! @$ u2 J/ ]4 P8 L/ y. m. b+ P: z5 F" n
20190411192840194.png

2 ]4 `7 L0 q3 k  B, L: w! e& {$ H
. f/ ~% P/ ^$ u( d' t% z; b四、下载代码观看现象: J) ]3 X8 d+ C; k% }* `9 f
将代码下载到开发板中可以看到LED0和LED1呈现出呼吸灯的效果1 _5 b4 x8 B% y  L) i

8 j+ `0 ?9 E: O! ]: }
9 I2 G8 {- J/ v- j% D: ~+ L
收藏 评论0 发布时间:2021-12-10 11:03

举报

0个回答

所属标签

相似技术帖

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