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

【经验分享】STM32F0 Timer1 作为PWM设置

[复制链接]
STMCU小助手 发布时间:2021-11-24 15:00
设置PA7 作为 PWM输出
" i( M; B* G2 S$ e( F0 S
  1. void TIM_IO_Config(void), ?, B3 }+ A: z- b+ i) z$ y
  2. {  g1 E4 @2 D- G2 L* j" d
  3. GPIO_InitTypeDef GPIO_InitStructure;: v! s4 D: M( x" b% m, a# D
  4. ; `6 _4 s0 C$ H+ y! J
  5. RCC_AHBPeriphClockCmd( RCC_AHBPeriph_GPIOA, ENABLE);
    5 j+ e3 ]7 J$ o7 G

  6. 2 o- `( Y! h5 ^5 ~6 m
  7. GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7;//3 [$ ]/ a/ e7 P  j' Z" k; L
  8. GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;8 y( H" Z; M; W
  9. GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;4 b4 {& M! j) }( D" a
  10. GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
    2 v+ u2 W9 v3 ~) r3 D+ f- Z
  11. GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP ;! H$ g2 v( C: i9 _
  12. GPIO_Init(GPIOA, &GPIO_InitStructure);
    ' k; [8 p9 s& X
  13. GPIO_PinAFConfig(GPIOA, GPIO_PinSource7, GPIO_AF_2);
    - M3 x' ~1 q  X" m  _
  14. }" R6 b, y2 W4 P7 c
  15. 设置Timer1 为PWM模式,使能,使能PWM输出
    ) K. \/ P- P1 {
  16. void TIM_PWM_Config(void)' ?, B+ V6 T/ i/ z; g. P
  17. {9 X$ \" S7 t, I- {- l: F
  18. /¼ÆËãÔ¤¶¨±íµÄÖµ£¬Ò²¾ÍÊǶàÉÙ¸öʱÖÓ¼ÆÊýΪһ¸öÖÜÆÚ/
    - ^! Z$ W; m- H$ Z
  19. TimerPeriod = (SystemCoreClock / 17570 ) - 1;
    ! [  M2 B% h+ n/ v
  20. /¼ÆËãCCR1 Ìø×ªÖµ ÔÚÕ¼¿Õ±ÈΪ50%ʱ/9 M* i4 ~  Z- I, v9 y4 r
  21. Channel1Pulse = (uint16_t) (((uint32_t) 5 * (TimerPeriod - 1)) / 10);
    ' Y) w% @8 h# p) U: C
  22. /* TIM1 ʱÖÓʹÄÜ /
    5 d& q/ @2 f% _! O2 a
  23. RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM1 , ENABLE);+ d7 y, |8 Z# y
  24. / Time ¶¨Ê±»ù´¡ÉèÖÃ*/2 i8 ~3 b$ Y3 R  y& B, r3 g
  25. TIM_TimeBaseStructure.TIM_Prescaler = 0;
    ' w$ `, f5 A9 ^( W. g
  26. TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; /* Time ¶¨Ê±ÉèÖÃΪÉÏÉýÑØ¼ÆËãģʽ*/
    # G% X; e9 `. t' ]" P1 {
  27. TIM_TimeBaseStructure.TIM_Period = TimerPeriod;
    2 X: @3 V. t) Y$ W4 a7 B! S3 ~& S
  28. TIM_TimeBaseStructure.TIM_ClockDivision = 0;
    $ S. k& x, a$ i! u4 ]
  29. TIM_TimeBaseStructure.TIM_RepetitionCounter = 0;5 u$ L# |0 p' d! H

  30. & ^4 i; `7 o& e  j% R+ ?, J
  31. TIM_TimeBaseInit(TIM1, &TIM_TimeBaseStructure);! q' p& c" e( C+ t' L' m+ {: K
  32. /* ƵµÀ1£¬2£¬3£¬4µÄPWM ģʽÉèÖà */- y& Y: n& d- K
  33. TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1;
    4 L. O( r& R# I7 |! N$ N' g+ R
  34. TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;: R' j1 a: f3 `- Q. \! m( O
  35. TIM_OCInitStructure.TIM_OutputNState = TIM_OutputNState_Enable;
    ; _; i6 M, G3 a( D5 ~0 e
  36. TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_Low;
    / l  I" c, \+ T  o5 p
  37. TIM_OCInitStructure.TIM_OCNPolarity = TIM_OCNPolarity_High;
    : Z5 E6 W1 a5 J) x' L4 ^; ^
  38. TIM_OCInitStructure.TIM_OCIdleState = TIM_OCIdleState_Set;% p: P1 m/ f) Z3 q' M
  39. TIM_OCInitStructure.TIM_OCNIdleState = TIM_OCIdleState_Reset;
    ; A" Y, J9 z5 v/ y8 }  Y

  40. 0 }* e- }6 I# s
  41. TIM_OCInitStructure.TIM_Pulse = Channel1Pulse;//ʹÄÜÆµµÀ1ÅäÖÃ5 c7 g/ k' N6 i- _
  42. TIM_OC1Init(TIM1, &TIM_OCInitStructure);
    , A; J! x5 Y& \+ b$ r* R, ^0 e

  43. 7 }7 O, @5 N3 ]. E4 }! g# n$ S# L7 r$ L+ x  @
  44. /* TIM1 ¼ÆËãÆ÷ʹÄÜ*/
    ' g4 j2 ^, e6 {( F2 x
  45. TIM_Cmd(TIM1, ENABLE);3 `! L; y' y! m9 V6 ~

  46. 5 x  t* P/ q0 C  s2 C
  47. /* TIM1 Ö÷Êä³öʹÄÜ */3 R$ E6 @# F$ ?, U' E+ N3 c: M
  48. TIM_CtrlPWMOutputs(TIM1, ENABLE);" f- k/ ?% p% V" w. l
  49. }
复制代码
0 K$ ~, y0 p; j. m, Y
. O8 f$ V2 \' R, l9 v
+ k. S7 O( y9 g% _6 o" P( y
收藏 评论0 发布时间:2021-11-24 15:00

举报

0个回答

所属标签

相似技术帖

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版