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

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

[复制链接]
STMCU小助手 发布时间:2021-11-24 15:00
设置PA7 作为 PWM输出# G/ [8 ]- }& j: P6 m, W1 W# d
  1. void TIM_IO_Config(void)
    2 @3 b7 B1 Q  C2 U0 G
  2. {: \# q& \. [- M9 M* m
  3. GPIO_InitTypeDef GPIO_InitStructure;
    : \5 K  M) n$ {6 W! N( Z- P% o
  4. $ \) O! p# K; D- f+ ?
  5. RCC_AHBPeriphClockCmd( RCC_AHBPeriph_GPIOA, ENABLE);: V! Z# e/ {8 i5 _# s  G- ?/ o

  6. 0 M4 P; c* {- A9 @
  7. GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7;//( t8 k1 Z5 m/ {0 @
  8. GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;" b  j& X# C( S) x, p' o
  9. GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;7 b7 N* a$ R% E1 ]9 f3 Y" J
  10. GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;4 t5 _- S2 s2 ]/ s9 f' H& X. J
  11. GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP ;
    # x! |$ p. y$ T+ J
  12. GPIO_Init(GPIOA, &GPIO_InitStructure);" R2 t7 J4 M* G& W  Z
  13. GPIO_PinAFConfig(GPIOA, GPIO_PinSource7, GPIO_AF_2);0 W) l( M5 q4 m+ p
  14. }" \) g& U. {/ S
  15. 设置Timer1 为PWM模式,使能,使能PWM输出
    6 G; G& y( Y" ]$ \+ d
  16. void TIM_PWM_Config(void)
    6 _9 e$ a' p- q9 Z
  17. {
    " V/ M) p1 o" a- q' L% G3 Z5 ]
  18. /¼ÆËãÔ¤¶¨±íµÄÖµ£¬Ò²¾ÍÊǶàÉÙ¸öʱÖÓ¼ÆÊýΪһ¸öÖÜÆÚ/* h( p& d% X# ^/ ^
  19. TimerPeriod = (SystemCoreClock / 17570 ) - 1;
    6 D$ ~" O  Z! t3 a$ k
  20. /¼ÆËãCCR1 Ìøתֵ ÔÚÕ¼¿Õ±ÈΪ50%ʱ/
    - Z. v& |6 z& k  n" k' j
  21. Channel1Pulse = (uint16_t) (((uint32_t) 5 * (TimerPeriod - 1)) / 10);
      R4 o% T4 k7 i$ |8 Q9 R9 Q8 l. m
  22. /* TIM1 ʱÖÓʹÄÜ /
    + a- H* n% F) c: `3 y0 l
  23. RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM1 , ENABLE);6 C6 c2 q6 S! t
  24. / Time ¶¨Ê±»ù´¡ÉèÖÃ*/
    % }0 L" y/ e, a8 O; n
  25. TIM_TimeBaseStructure.TIM_Prescaler = 0;
    7 s' @( P8 f9 M# x8 M- x2 s2 W6 u
  26. TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; /* Time ¶¨Ê±ÉèÖÃΪÉÏÉýÑؼÆËãģʽ*/: }1 d: T, l& }$ g0 E, q2 @
  27. TIM_TimeBaseStructure.TIM_Period = TimerPeriod;& Z1 ^/ P% |( |/ C& ^$ ^
  28. TIM_TimeBaseStructure.TIM_ClockDivision = 0;1 c' C; R# V/ ^
  29. TIM_TimeBaseStructure.TIM_RepetitionCounter = 0;
    % ^6 H* ^8 u* ?* n' d! W

  30. 8 O$ k; {5 \7 N2 E5 q
  31. TIM_TimeBaseInit(TIM1, &TIM_TimeBaseStructure);
    2 r+ G  L0 O9 @" H$ c% [; w3 V
  32. /* ƵµÀ1£¬2£¬3£¬4µÄPWM ģʽÉèÖà */
    6 y# c# @, x* Z/ k+ v8 Y
  33. TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1;
    0 ?( y6 J1 H  i5 o7 w' ?
  34. TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;& E2 a% q- M4 U% d7 v. l* w
  35. TIM_OCInitStructure.TIM_OutputNState = TIM_OutputNState_Enable;* D! T2 q7 R& ^+ s) Z1 q% }
  36. TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_Low;, ?% q. u4 v2 y# o, h& ~
  37. TIM_OCInitStructure.TIM_OCNPolarity = TIM_OCNPolarity_High;' O2 P7 ?1 n3 }; y5 T2 D# s
  38. TIM_OCInitStructure.TIM_OCIdleState = TIM_OCIdleState_Set;
    ) u/ n6 a+ J9 D0 p- B
  39. TIM_OCInitStructure.TIM_OCNIdleState = TIM_OCIdleState_Reset;6 e/ {# p3 _) B2 x% g

  40.   L7 f0 R* E0 m; j: k: x* {& A) f
  41. TIM_OCInitStructure.TIM_Pulse = Channel1Pulse;//ʹÄÜƵµÀ1ÅäÖÃ
    6 F7 W" \" g+ A0 o1 Y1 `- k# {' z: S
  42. TIM_OC1Init(TIM1, &TIM_OCInitStructure);
    ' u2 ]& I  b! Q- n" A' \
  43. 2 l* }4 K3 `! G
  44. /* TIM1 ¼ÆËãÆ÷ʹÄÜ*/
    ! _  F: C4 _4 j7 w! `! k$ l
  45. TIM_Cmd(TIM1, ENABLE);
    & F6 C+ e4 U4 _( R3 O( t0 w1 B: C
  46. $ z$ O* S: l5 o% j
  47. /* TIM1 Ö÷Êä³öʹÄÜ */
    2 q' l! q2 B1 J. H' o
  48. TIM_CtrlPWMOutputs(TIM1, ENABLE);
    4 P1 ?7 ^0 J5 r( t# S- T+ E
  49. }
复制代码

9 F; I% x) u8 x  d: `
6 A6 J# }$ S( n  e# i* S
- P3 R2 m# e. T; F9 q, c3 u3 ~
收藏 评论0 发布时间:2021-11-24 15:00

举报

0个回答
关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版