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

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

[复制链接]
STMCU小助手 发布时间:2021-12-10 11:03
一、打开cubemx0 @* B" @6 O6 f3 O2 `; v
LED0和LED1连接在PB0和PB1上,刚好是TIM3的PWM通道3和通道4( E# T+ `# w% v- Z8 X
! O7 W' d& K7 r5 t1 w
二、配置PWM参数
. ~$ ]8 [+ V/ g" a# |开启TIM3的通道3和通道4
2 t. a3 y9 W7 y
% K; O8 ^  b6 _& r
20190411191426790.png

+ e$ Z2 A- Y/ B& l3 [( C, S. x" b4 c. Z, S. o, V5 u
配置PWM的频率为108000000/(108*500)=20kHZ/ G, X" \5 a- [$ ^) H8 k, Q

; p( @$ c5 |% M" [
2019041119164611.png
* Z& v! _# O4 q- b3 n* g7 A

& A) ^6 ~+ e0 @! T6 w" O) G, Y' J配置PWM通道3和通道4. a8 o# |6 `8 y, z8 F; [

' U" Z+ w% B: L
20190411191722584.png

: S) U6 g. h5 t2 s7 F
1 K. H7 s# ?% L在程序中改变pulse的值,即可改变占空比pulse的取值范围在0-count period之间
3 o. |, i" u) T: J! l1 ]; S' E3 H
) p  h9 m9 f( M8 u+ z* k, s8 M" `三、生成代码
3 _3 u0 e7 k; k; a在main函数中增加代码,开启PWM输出) b: X( `: P$ _# h
: d" b$ M6 H, P3 A: I9 }
20190411192042209.png

+ S) r9 D/ W( Q6 P7 f4 f
6 f# D* `7 y$ }: K在tim.c中增加pwm控制函数9 b4 }' R0 w7 w0 p. }7 W
8 v6 y; e5 w; a) F7 C, H. ?
  1. void SetPwm(uint16_t pwm1,uint16_t pwm2)1 |; M2 H* n* B( }1 K
  2. {- t9 P9 o/ s4 C! B# |) m; A& N
  3.     TIM3->CCR3=pwm1;! O' v# N' Z5 `  E& ~- I
  4.     TIM3->CCR4=pwm2;
    - H0 _, ~# @3 h4 {8 d$ @+ @5 P
  5. }
复制代码

: I. e1 D0 Z4 A' e8 M也可以使用hal库进行修改,但这样比较复杂
" `; S& I) r6 ~: V4 N. L
& ~6 T; g# s  O7 U
  1. void SetPwm(uint16_t pwm1,uint16_t pwm2)& }! p; Z4 p) X* z1 |* _$ r0 R2 D
  2. {
    ! g+ `& O3 A$ F* M5 ^
  3.                 TIM_OC_InitTypeDef sConfigOC;
    & c( w0 y: ?& s7 d. e6 q
  4.             sConfigOC.Pulse = pwm1;: U* S: H. G9 O* h+ ^
  5.             HAL_TIM_PWM_ConfigChannel(&htim3, &sConfigOC, TIM_CHANNEL_3);7 F; a& p1 x8 [2 P! ]! f
  6.             HAL_TIM_PWM_Start(&htim3, TIM_CHANNEL_3);  
    : S% f4 b) X& J* _
  7.                  sConfigOC.Pulse = pwm2;  k- C$ j4 @8 k6 O9 d
  8.             HAL_TIM_PWM_ConfigChannel(&htim3, &sConfigOC, TIM_CHANNEL_4);# ^* z2 i$ w! ~# n. G9 A5 B
  9.             HAL_TIM_PWM_Start(&htim3, TIM_CHANNEL_4);  
    9 b) e. {# ^& f0 J- ?5 m+ @
  10. }
复制代码
7 k& I& M$ Y' b: r% C6 v$ r9 c  u7 f
在主函数添加呼吸灯代码,添加完成如下
7 G2 x6 V. a7 v; ]% w: {: S4 j6 d( `' n* M, N0 C7 N* i: {5 }
20190411192840194.png

" v2 L5 Q+ G! q- p  M% t0 X! [6 Y4 |% R2 Y
四、下载代码观看现象  i6 y- [  I5 |
将代码下载到开发板中可以看到LED0和LED1呈现出呼吸灯的效果+ M! }1 x8 _+ f3 J' M; b

. v4 w9 n$ _1 w. R5 L6 m- l
6 V( ^9 D7 D) E( G
收藏 评论0 发布时间:2021-12-10 11:03

举报

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