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

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

[复制链接]
STMCU小助手 发布时间:2021-12-10 11:03
一、打开cubemx  q% s! g9 p$ }2 w* C1 m
LED0和LED1连接在PB0和PB1上,刚好是TIM3的PWM通道3和通道4
# b/ ]( m9 E# I# U3 B. ^
6 \0 m, l0 O# y4 ]: l( i二、配置PWM参数9 X8 \: v( l  q7 i  J
开启TIM3的通道3和通道4
- m, W( e7 c3 T5 f+ ~! k5 Z! t+ F$ q/ S' {" G+ b9 s- {5 E
20190411191426790.png

1 s2 X  [4 o3 P* i! D2 H& A2 }8 N6 p4 l/ U4 {
配置PWM的频率为108000000/(108*500)=20kHZ
* k2 ?* A' n0 T  u! p
2 v* t. ]7 t: F2 F2 h
2019041119164611.png
( X! r2 ^' \9 ~% ^' n
$ k- ~' q! U( M" _% X" }- M
配置PWM通道3和通道4
% A3 Y7 ?$ ]: K* u
0 G* b' p. T* J+ a0 M  c
20190411191722584.png
5 z1 o) @7 v, o. s

0 p; h0 k/ {, E* M0 P' _在程序中改变pulse的值,即可改变占空比pulse的取值范围在0-count period之间
- ?, ]- F- F1 `/ @9 g: L
9 n7 U4 @0 X" m, [' D三、生成代码" P1 K$ P% s4 e- D
在main函数中增加代码,开启PWM输出
# I/ m: s. S+ }  {- U) h4 ?6 p3 x+ t8 V- @+ a* C4 A; Z6 J  U" ]
20190411192042209.png
6 ^7 o  i1 j6 K8 Z

0 H" v$ T$ y9 N$ C在tim.c中增加pwm控制函数9 G7 U2 C3 Q* E& e7 [# Y& A: j4 ?

- I3 P" V# V6 u5 e  d
  1. void SetPwm(uint16_t pwm1,uint16_t pwm2)
    ! b1 N) s5 u) F
  2. {- T# v' g) x- x" v# w, V4 C. k
  3.     TIM3->CCR3=pwm1;
    " O, U3 [! W  k( E
  4.     TIM3->CCR4=pwm2;
    0 w" I; w; ~! v1 k
  5. }
复制代码

; J8 M& u9 i, y: \1 P也可以使用hal库进行修改,但这样比较复杂, h! d" l  `/ }- s. L) \3 T

  g- y# k* d7 V# ?" f! }
  1. void SetPwm(uint16_t pwm1,uint16_t pwm2)
    ) q, U# j% `* q* x4 `* H( V
  2. {
    " u1 V! l" Y+ j( \' t- S" f
  3.                 TIM_OC_InitTypeDef sConfigOC;0 u- @2 A, @! v, w4 ^
  4.             sConfigOC.Pulse = pwm1;+ D) u* _( d! \! ?8 T# A9 K
  5.             HAL_TIM_PWM_ConfigChannel(&htim3, &sConfigOC, TIM_CHANNEL_3);3 X; N0 _* ^! d) H$ t8 {
  6.             HAL_TIM_PWM_Start(&htim3, TIM_CHANNEL_3);  0 ]& `& {# E' B/ }3 u& e  F
  7.                  sConfigOC.Pulse = pwm2;. d% g8 \  d7 g( ^
  8.             HAL_TIM_PWM_ConfigChannel(&htim3, &sConfigOC, TIM_CHANNEL_4);
    2 @* L6 w1 C# J/ v7 {
  9.             HAL_TIM_PWM_Start(&htim3, TIM_CHANNEL_4);  4 U* y+ e) s3 i6 C5 D' s
  10. }
复制代码
4 m, j. i! D8 I6 d$ l1 h+ B5 K2 H
在主函数添加呼吸灯代码,添加完成如下& v' I. C/ t/ |# K4 H  A* M
/ ]0 Q6 Q$ A, d) ~( g
20190411192840194.png
; N/ s1 i- Y1 j' [

/ R4 R5 g7 c1 {" L! i* F: F: Z. H四、下载代码观看现象
( d9 e1 |/ {6 a  {: R& {( u5 v将代码下载到开发板中可以看到LED0和LED1呈现出呼吸灯的效果- G1 `' q. D& q1 V, E+ q- d

# r! }0 W# [: e" f& b: s3 u2 M& l2 _* z
收藏 评论0 发布时间:2021-12-10 11:03

举报

0个回答

所属标签

相似技术帖

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