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

【经验分享】STM32G030F6使用CubeMx配置PWM实验

[复制链接]
STMCU小助手 发布时间:2021-11-11 22:00
1. 使用 CubeMx 创建 PWM 工程
5 v5 a* P; T4 l: h* q7 C  E打开 CubeMx 软件,选中我们此次使用的单片机型号 STM32G030F6P6 ,点击 StartProject.
6 q8 _5 U/ a7 C6 I4 L& T( _" o1 ?
6 y/ {$ s; C  r( r4 m$ Z配置定时器
. a2 b8 u2 Z6 S8 n8 x
2021012919392522.png

0 T6 O( O% h6 R% a) _8 O- u. C% [9 q* `
. Y  }6 U8 j! P6 O
配置定时器1的通道1和通道2 产生PWM;/ U1 J2 k+ H1 x: |* Y
设置定时器1的主频:设置了( 63 + 1) 分频即定时器主频为1M
4 Z" v6 l! `) L$ q% L设置PWM定时的周期计数为 1000 即 1000HZ+ F" N9 w2 w( I* ]/ s; M0 \6 F7 n

! M$ |  t/ e% Z- T
20210129194500268.png
: z( d1 h) v( n6 X
: g1 h9 ^+ V2 A+ x4 P) T; W
设置通道一 翻转的计数值为 500 即占空比为 50%
- k% U- S' q0 |1 Y& y+ |2 O6 O/ U设置通道二 翻转的计数值为 200 即占空比为 20%
7 E7 p, _* D- j# E- \5 M$ N5 ~+ o: ^, l+ b: m
配置时钟
+ u# H  w' t) p( t+ o4 f, X
20210129194625281.png

9 }8 I' u) ~, R* Y
( O' B! |, m2 v( ?8 {使用内部高速时钟,将主频倍频到64MHZ( ^- ?# P; z2 B! ]
, N" D$ P# p) }* ]& i0 P
配置工程相关选项
) Y/ K3 ^0 X2 h! ?
3 U2 a  N4 A- U9 y' C( W
20210129194748518.png
8 ], r2 T. C2 g( ^

' o# l; A4 |3 c
2 s- w6 ~8 ?, Y( i5 [9 E# K配置完成后点击右上角 GENERATE CODE完成工程的创建9 U, L. O3 ?* ^

) d& n, G( O  ]6 A, x2. 编程
( H) J. A% a+ d定时器的初始化函数都已经由CubeMx生成,我们仅需要打开 PWM的使能即可
0 B, ]* [6 D( v: k  F. X' _# P! E* p$ @$ }8 k6 ?
  1. /**
    + z) ~; C& D1 k; i
  2.   * @brief  The application entry point.: t( Z, K9 S! Y# N7 _( |* d
  3.   * @retval int# R7 N: l9 {9 J+ a
  4.   */
    ; u7 U/ a6 r* H; H7 L8 W3 W" u7 \
  5. int main(void)
    * K$ O) J- x0 n9 U5 n& }/ A8 h4 Q
  6. {, y% a3 a( \, l& Y
  7.     /* USER CODE BEGIN 1 */
    1 Y# V+ v1 h9 H" x8 g/ ~# D
  8. 8 c' y" L" Y) i2 i# p2 q
  9.     /* USER CODE END 1 */8 @' G% w: s; i: h* c# h' \

  10. ' I# v) ^% u4 o* O' F; ?
  11.     /* MCU Configuration--------------------------------------------------------*/
    . \. g# N7 p  h
  12. . ]( [  q1 `0 z
  13.     /* Reset of all peripherals, Initializes the Flash interface and the Systick. */$ d. a5 ~  Z4 y' r
  14.     HAL_Init();, z9 d' O1 L/ K

  15. 0 }' G  C- Q- `6 L6 r4 m
  16.     /* USER CODE BEGIN Init */
      k  A5 M& ^. c( g/ n. @2 b* e

  17. 0 G& x( w! H4 k2 f
  18.     /* USER CODE END Init */) p4 d4 @) n  J. S

  19. 4 b) @; X+ W- C
  20.     /* Configure the system clock */
    ; T( V4 u( a7 }. ]8 n+ _9 z9 O
  21.     SystemClock_Config();
    " D3 H3 P) Q! l8 m

  22. * w( ^; i/ u# |( u
  23.     /* USER CODE BEGIN SysInit */5 ]1 k5 w, h$ G0 f! @7 Z
  24. ) O8 w+ q+ }" V3 l# N; p
  25.     /* USER CODE END SysInit */  ^/ J  x* m- E( [+ {8 M' S1 o: A9 N/ a
  26. 0 G. M: M) s: X3 O
  27.     /* Initialize all configured peripherals */. _7 e) z5 W0 |- Q
  28.     MX_GPIO_Init();6 t9 k/ b6 }3 T
  29.     MX_TIM1_Init();% b' h9 z" Y3 @$ d# c3 s
  30.     /* USER CODE BEGIN 2 */) j- ?! `+ {! x" O) ^, X! G! o2 r3 B
  31.     HAL_TIM_PWM_Start(&htim1, TIM_CHANNEL_1);   //1000HZ 50%占空比的PWM
    - L5 }" H/ Z" j( H
  32.     HAL_TIM_PWM_Start(&htim1, TIM_CHANNEL_2);   //1000HZ 20%占空比的PWM9 v' G7 f% m+ b7 l* m9 F
  33.     /* USER CODE END 2 */) S: S+ I" c( U+ z% f+ @& d# \
  34. ; n1 W7 X9 x9 B" \. v+ d" g- G& r
  35.     /* Infinite loop */. l+ @7 K$ \1 K8 J) t0 F1 s, Y9 @
  36.     /* USER CODE BEGIN WHILE */, `* l, C( Q9 L' z4 P+ t7 [8 F
  37.     while(1)
    - ~2 C9 ^8 o3 i
  38.     {
    * g7 N% z( w) u& g
  39.         /* USER CODE END WHILE */4 P# z) f4 J4 B$ m
  40. ( q: h) ~: U& X% Z( M
  41.         /* USER CODE BEGIN 3 */; {7 j' S: K& \
  42.     }$ l5 C5 w& z- P: a* x
  43.     /* USER CODE END 3 */* B, }! x! i2 P8 y
  44. }
复制代码
8 s1 c9 U" ~+ Q2 P9 Z
可以使用一下函数修改PWM的占空比
+ R0 C0 I3 d' l/ q. e
9 O, ]2 Q3 d6 h$ Z& A- ^1 m) P3 M
  1. // 使用此宏定义修改占空比
    $ |: B- [% [, k
  2. __HAL_TIM_SetCompare(__HANDLE__, __CHANNEL__, __COMPARE__)
复制代码
例如:
! i+ h$ n4 K/ [- [7 E" u- c2 l! t: |" `
  1. // 将定时器1的通道1 翻转计数修改为 800,在我们的例程上正好就是800/1000 即 80% 的占空比& P  J- K  E" G2 |: m: t
  2. __HAL_TIM_SET_COMPARE(&htim1, TIM_CHANNEL_1,800);
复制代码
# A7 s9 l. ~. ~
3. 实验现象2 M, L& c2 {$ v
编译并将工程下载到开发板后,使用示波器或者逻辑分析器查看 PA8 和 PB3 引脚是否输出 1000HZ 且占空比分别为 50% 和 20% 的方波。1 ?- V6 F9 G" T$ j& [

  p0 m5 l$ Z* V9 F4 J' s/ U6 c( D& M1 V9 t1 `4 ?" T: X# c

2 P; v& L9 F( X$ b
收藏 评论0 发布时间:2021-11-11 22:00

举报

0个回答

所属标签

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