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

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

[复制链接]
STMCU小助手 发布时间:2021-11-11 22:00
1. 使用 CubeMx 创建 PWM 工程5 n  h2 s  n6 a
打开 CubeMx 软件,选中我们此次使用的单片机型号 STM32G030F6P6 ,点击 StartProject.: ?3 B/ n8 p, T
  s9 `' o. S9 O- O1 |$ S
配置定时器/ j0 Z1 j  L) B& k
2021012919392522.png

* ]1 S1 w& ?4 b' o: A3 }9 R5 O( W# j  r4 @& c) {: Y

3 P8 y  J# [4 ~配置定时器1的通道1和通道2 产生PWM;
; V+ H7 L$ a' ^& ~  ^设置定时器1的主频:设置了( 63 + 1) 分频即定时器主频为1M% {* D9 F3 T. E, n
设置PWM定时的周期计数为 1000 即 1000HZ! x& w: t; f; t. ]0 p( b8 e
  ~) X4 ]2 T3 P+ r  {( W% \
20210129194500268.png

2 a4 }+ V+ [; M+ g9 E/ p5 T0 X
% J* ^: T3 t0 h. a4 F$ z设置通道一 翻转的计数值为 500 即占空比为 50%% `% n9 J* Z% g; x$ V+ w* X$ N
设置通道二 翻转的计数值为 200 即占空比为 20%0 G" U! a- x! V) L1 K

  ~8 T0 |7 I* e配置时钟* h( @, ?! B2 r
20210129194625281.png

2 [( B4 x8 L" M1 q- S/ H
: J% s& j  h. S使用内部高速时钟,将主频倍频到64MHZ
' K# F, Y# m4 |! Z& A
6 {. z! w# c, d" A% ~配置工程相关选项* p( O9 o0 w3 o  b4 c* F! L3 c6 ^' j! n8 P

0 ^6 p; q% H: N# d. g( \: U. J6 v
20210129194748518.png
" N4 ~: @: F; Y; g

; X% r% S; U& s- c9 a" q2 J6 p6 |
配置完成后点击右上角 GENERATE CODE完成工程的创建3 b1 U$ R7 T& t0 o! K, T
4 ]( K. m6 z. t9 [
2. 编程
8 O8 Q5 h$ D7 r8 r定时器的初始化函数都已经由CubeMx生成,我们仅需要打开 PWM的使能即可
2 H7 R  G- V2 i' \( N+ G( \6 U, ?/ @. v4 [
  1. /**/ {* y: a+ `0 n1 ]
  2.   * @brief  The application entry point.2 R, J8 Y& u6 L$ y) J
  3.   * @retval int
    - v, t' O( P. n/ {4 F( w3 D7 q% Z; s
  4.   */
    5 q0 C  ]& G: ?0 j, g
  5. int main(void)
    " R% G' Q4 G5 f/ d
  6. {
    4 J$ e  g: n* r) B7 b
  7.     /* USER CODE BEGIN 1 */1 ^( B  R8 N. Y* j/ ?

  8. 7 C  G7 l) |5 h1 T" M/ Y1 Z$ D
  9.     /* USER CODE END 1 */1 E) V- ?" }, @3 U( {

  10. 5 h' F( O6 e1 D  |% v
  11.     /* MCU Configuration--------------------------------------------------------*/
    5 y# b  _$ E3 J9 V& R% d
  12. 6 S9 v9 V1 S/ p. u8 s5 n: x8 d- ~
  13.     /* Reset of all peripherals, Initializes the Flash interface and the Systick. */
    8 D! p9 k# A0 b$ v; l' B0 M
  14.     HAL_Init();
    4 H0 f4 N: }( O
  15. 8 _# l$ N9 l' K" n  p! k- C/ H
  16.     /* USER CODE BEGIN Init */  K& q9 n& j, f) `
  17. + p- }7 N& |( V+ U
  18.     /* USER CODE END Init */7 y4 N/ z; Z8 v6 @1 c
  19. 0 A, \; ^0 _, Z- D0 N9 ]
  20.     /* Configure the system clock */
    9 t* B0 R9 E2 _; G
  21.     SystemClock_Config();9 N* q5 h# ^% d

  22. . a/ K/ g( |/ e( d
  23.     /* USER CODE BEGIN SysInit */
    % t2 K3 j* v$ i! L

  24. ( e/ @. d/ ]. ~( Z/ @+ Q2 M; [" Q5 k
  25.     /* USER CODE END SysInit */8 W! }$ o. ?# P  a1 d* B& B
  26. 9 j1 B( I- x2 k4 D& ]6 h$ n
  27.     /* Initialize all configured peripherals */& H- S1 d( B  K- H6 R0 l% Y) [
  28.     MX_GPIO_Init();& p' B& a: B6 j0 j8 o
  29.     MX_TIM1_Init();( u! s9 {% _8 z
  30.     /* USER CODE BEGIN 2 */" }7 ^% R, W3 c
  31.     HAL_TIM_PWM_Start(&htim1, TIM_CHANNEL_1);   //1000HZ 50%占空比的PWM
    . y/ [/ v6 d8 |1 X% a/ U6 i/ L
  32.     HAL_TIM_PWM_Start(&htim1, TIM_CHANNEL_2);   //1000HZ 20%占空比的PWM
    , X9 q2 {* c; R2 a5 q4 o* T8 N! p
  33.     /* USER CODE END 2 */- p' I( u9 B4 T; q3 K9 H8 u
  34. 4 a; @( ]8 {& v8 x1 B$ x
  35.     /* Infinite loop */
    * }/ w2 a1 M' l: ~+ E
  36.     /* USER CODE BEGIN WHILE */: D$ J/ _  |; {7 d; Z3 h) z: k
  37.     while(1)
    . ?$ Y: x5 D) Z) O
  38.     {
    - P( {' S' s/ ]" l% M" N
  39.         /* USER CODE END WHILE */
    9 b' B9 Z! h. @7 @
  40. ' Z: b6 |! @% [7 U4 }4 f0 ~
  41.         /* USER CODE BEGIN 3 */9 d! @, B+ l- q7 O- s5 U
  42.     }
    / O. _* }. d) k! T: Q0 {; g+ j
  43.     /* USER CODE END 3 */& i. L9 J" ?7 Y( Y8 [
  44. }
复制代码

3 g8 O0 }4 _1 W可以使用一下函数修改PWM的占空比- H6 v) D0 C( ^& W. p

! \; y! C" D2 y& j$ s: U
  1. // 使用此宏定义修改占空比
    6 a$ ^5 y5 M. v1 M" I
  2. __HAL_TIM_SetCompare(__HANDLE__, __CHANNEL__, __COMPARE__)
复制代码
例如:
! b% W# b) c0 p5 |& J- L' ^' j! E) H8 [: U8 v* ]# o, c
  1. // 将定时器1的通道1 翻转计数修改为 800,在我们的例程上正好就是800/1000 即 80% 的占空比' p& ~, q7 f" L) H0 v
  2. __HAL_TIM_SET_COMPARE(&htim1, TIM_CHANNEL_1,800);
复制代码

, b# W  E! [! j) E& ^. O5 A% \3. 实验现象
# [( x5 Y( z6 A7 }# n编译并将工程下载到开发板后,使用示波器或者逻辑分析器查看 PA8 和 PB3 引脚是否输出 1000HZ 且占空比分别为 50% 和 20% 的方波。. T1 b( P& n" V& H" i. U
1 u; ^2 j" c2 Z, `: c3 K) G7 V
* Q' b6 Z4 n7 T
; d5 U% @% c. y* S! Q# G. H
收藏 评论0 发布时间:2021-11-11 22:00

举报

0个回答

所属标签

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