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

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

[复制链接]
STMCU小助手 发布时间:2021-11-24 15:00
设置PA7 作为 PWM输出
( Y9 A- v, o8 Q2 t) ^9 b6 J6 F
  1. void TIM_IO_Config(void)3 p$ N7 [( E. j* s. Q
  2. {
    ) q5 Z4 `0 a8 b' a+ a
  3. GPIO_InitTypeDef GPIO_InitStructure;
    . e, O* e1 X, I, i( R7 O) ~
  4. 5 [+ t% F, f' A+ [
  5. RCC_AHBPeriphClockCmd( RCC_AHBPeriph_GPIOA, ENABLE);
    8 Z: `% l! {1 f; T
  6. - X0 s0 E1 Q( K
  7. GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7;//
    # E1 n7 E; ~+ \( f
  8. GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
    + c$ s8 a0 J; T
  9. GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
    * c: Z* v  d$ e! T
  10. GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;$ S2 s( y! }9 r$ I5 R# }2 A
  11. GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP ;! k& b# s5 P/ d( r. i; X
  12. GPIO_Init(GPIOA, &GPIO_InitStructure);9 n* p- `+ Q+ j$ F% d
  13. GPIO_PinAFConfig(GPIOA, GPIO_PinSource7, GPIO_AF_2);2 _* e& T* D7 q. a3 H# T2 v* f. \
  14. }+ S: k: P9 L' D1 c- e: G% W$ k. W
  15. 设置Timer1 为PWM模式,使能,使能PWM输出
    + P3 H: l4 y) i/ z/ h
  16. void TIM_PWM_Config(void)
    ' v/ q( _) n' \/ Y2 K" P( I: J* ?
  17. {
    ( Z3 ^8 G: T* n
  18. /¼ÆËãÔ¤¶¨±íµÄÖµ£¬Ò²¾ÍÊǶàÉÙ¸öʱÖÓ¼ÆÊýΪһ¸öÖÜÆÚ/" v3 m4 N) Q/ u% [+ H
  19. TimerPeriod = (SystemCoreClock / 17570 ) - 1;
    8 M, L7 ~7 Y* a- {2 w7 y$ Q
  20. /¼ÆËãCCR1 Ìø×ªÖµ ÔÚÕ¼¿Õ±ÈΪ50%ʱ/
    6 F# y; f3 {% z& u; L$ b
  21. Channel1Pulse = (uint16_t) (((uint32_t) 5 * (TimerPeriod - 1)) / 10);
    " B' W7 o4 u2 G/ o/ w$ q
  22. /* TIM1 ʱÖÓʹÄÜ /
    6 t+ X) o- }4 a1 |+ T
  23. RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM1 , ENABLE);
    / X0 r1 ~5 d9 _5 O. ^4 V2 {$ p
  24. / Time ¶¨Ê±»ù´¡ÉèÖÃ*/( F+ n! [) h8 g7 w0 c
  25. TIM_TimeBaseStructure.TIM_Prescaler = 0;: X( P, w. N! Y2 b. o" T
  26. TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; /* Time ¶¨Ê±ÉèÖÃΪÉÏÉýÑØ¼ÆËãģʽ*/8 h1 d4 V1 ?4 [1 W
  27. TIM_TimeBaseStructure.TIM_Period = TimerPeriod;2 D, Q% f7 a+ A! K8 ?* a
  28. TIM_TimeBaseStructure.TIM_ClockDivision = 0;
      j9 z9 V% a: |8 I4 \
  29. TIM_TimeBaseStructure.TIM_RepetitionCounter = 0;3 s3 g$ d% V/ M/ k& z& s
  30. 9 B7 O" w+ ?7 S% P$ I* N  W. j' m
  31. TIM_TimeBaseInit(TIM1, &TIM_TimeBaseStructure);
    . l2 L4 I, G  j# G: p8 ~
  32. /* ƵµÀ1£¬2£¬3£¬4µÄPWM ģʽÉèÖà *// j. H" O9 i- y$ Z5 s
  33. TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1;( o1 I1 v/ _9 r& C
  34. TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;
    * H' g6 V; g4 P& Q
  35. TIM_OCInitStructure.TIM_OutputNState = TIM_OutputNState_Enable;
    $ Q( l- z$ y# i9 M% Y
  36. TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_Low;
      E7 Q4 y" G& {# W8 p8 [
  37. TIM_OCInitStructure.TIM_OCNPolarity = TIM_OCNPolarity_High;" ~5 o/ b/ G0 e* w4 \6 ?
  38. TIM_OCInitStructure.TIM_OCIdleState = TIM_OCIdleState_Set;0 _% J. y% S% s% t1 Y; m- O) \4 r3 l
  39. TIM_OCInitStructure.TIM_OCNIdleState = TIM_OCIdleState_Reset;
    " {6 K1 T2 ?5 i" ^
  40. 3 S( \4 U( ]& m7 b
  41. TIM_OCInitStructure.TIM_Pulse = Channel1Pulse;//ʹÄÜÆµµÀ1ÅäÖÃ
    2 v+ C- S9 i7 t% O% V- n
  42. TIM_OC1Init(TIM1, &TIM_OCInitStructure);
    8 i' E% Z- _8 G! `+ Q

  43. : [5 c; n8 p/ R& s, z
  44. /* TIM1 ¼ÆËãÆ÷ʹÄÜ*/# }0 p6 A( S6 c, b6 G$ `  l1 w# J
  45. TIM_Cmd(TIM1, ENABLE);
    " t2 n5 F" B8 n* u0 w, v+ K4 ]

  46. 2 x! B- M! G- }) q. _
  47. /* TIM1 Ö÷Êä³öʹÄÜ */
    , M2 R; u! o+ O* Q, w; m
  48. TIM_CtrlPWMOutputs(TIM1, ENABLE);
    / ~- X1 e" l/ V% @
  49. }
复制代码

1 S3 D7 ~  A$ @: a1 X4 i; h* x; T/ d$ t) K) u! t

: Z  m' Y+ a6 `# \& C$ A# V
赞 收藏 评论0 发布时间:2021-11-24 15:00

举报

0个回答

所属标签

相似技术帖

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