请选择 进入手机版 | 继续访问电脑版

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

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

[复制链接]
STMCU小助手 发布时间:2021-11-24 15:00
设置PA7 作为 PWM输出4 e/ m0 z, C5 b0 l
  1. void TIM_IO_Config(void)
    5 B3 |8 H7 d  l
  2. {8 ~" f- ^4 b' Z/ ?
  3. GPIO_InitTypeDef GPIO_InitStructure;4 h+ \( r. p' _5 z$ |
  4. # k8 _9 G; p: ]
  5. RCC_AHBPeriphClockCmd( RCC_AHBPeriph_GPIOA, ENABLE);# F" @! B6 Q" J* _* _
  6. # G/ v9 u8 l0 r4 s8 \
  7. GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7;//7 o" G4 H) P9 v6 Z
  8. GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;; g- f# W, I! D7 m) @$ f
  9. GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;4 i- S6 o+ A" Y1 W3 a) W
  10. GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;1 P5 a/ D5 N( N* h
  11. GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP ;( j0 r+ W% l/ u
  12. GPIO_Init(GPIOA, &GPIO_InitStructure);" E4 y5 }. ^4 L
  13. GPIO_PinAFConfig(GPIOA, GPIO_PinSource7, GPIO_AF_2);
    # J% ^* C) t! L
  14. }
    ) z9 Y" i+ a" S8 D, ?  `/ w6 r$ \
  15. 设置Timer1 为PWM模式,使能,使能PWM输出
    3 e  o  r# c6 D+ D8 u* y
  16. void TIM_PWM_Config(void)" f9 e8 N# |1 a! ~/ Q. o) X
  17. {9 \. \9 R; C- }: p' @
  18. /¼ÆËãÔ¤¶¨±íµÄÖµ£¬Ò²¾ÍÊǶàÉÙ¸öʱÖÓ¼ÆÊýΪһ¸öÖÜÆÚ/, _4 F- L" d3 B- c5 t1 u: p
  19. TimerPeriod = (SystemCoreClock / 17570 ) - 1;
    8 y. C. c5 k1 \0 j. \9 g
  20. /¼ÆËãCCR1 Ìøתֵ ÔÚÕ¼¿Õ±ÈΪ50%ʱ/
    ( b: Y) k/ |+ \- P
  21. Channel1Pulse = (uint16_t) (((uint32_t) 5 * (TimerPeriod - 1)) / 10);1 V# D% I  d& [2 S
  22. /* TIM1 ʱÖÓʹÄÜ /3 e/ s" n: o  v, r1 Q& d2 D. v3 _
  23. RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM1 , ENABLE);# E0 W# Z7 r/ w7 ~: m
  24. / Time ¶¨Ê±»ù´¡ÉèÖÃ*/
    ! `' f; l7 W. ^! J
  25. TIM_TimeBaseStructure.TIM_Prescaler = 0;
    8 M) ]9 A+ _4 J7 O$ |
  26. TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; /* Time ¶¨Ê±ÉèÖÃΪÉÏÉýÑؼÆËãģʽ*/5 \% o# C& p; z' V: f& ^" y
  27. TIM_TimeBaseStructure.TIM_Period = TimerPeriod;
    1 e4 |# n' K: o' q+ B8 \" g
  28. TIM_TimeBaseStructure.TIM_ClockDivision = 0;; u8 _+ i9 n8 w
  29. TIM_TimeBaseStructure.TIM_RepetitionCounter = 0;$ E3 W# X2 D9 A( c8 G6 P& _
  30. . e3 Z/ W" o, A9 Z9 Y
  31. TIM_TimeBaseInit(TIM1, &TIM_TimeBaseStructure);% ]! m' r5 V3 A" u
  32. /* ƵµÀ1£¬2£¬3£¬4µÄPWM ģʽÉèÖà */9 k" h% {0 K& e" i, K* r, M
  33. TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1;$ Y5 E) e% C+ V$ U2 x
  34. TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;  ^% o9 v* L( L7 I1 d
  35. TIM_OCInitStructure.TIM_OutputNState = TIM_OutputNState_Enable;6 D! J) W" P& x
  36. TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_Low;# ~3 K( n) h. @8 x* d
  37. TIM_OCInitStructure.TIM_OCNPolarity = TIM_OCNPolarity_High;: V0 @$ w2 g0 K5 T! I
  38. TIM_OCInitStructure.TIM_OCIdleState = TIM_OCIdleState_Set;" s5 `. c% ]( S2 J- i) f* `/ L4 \
  39. TIM_OCInitStructure.TIM_OCNIdleState = TIM_OCIdleState_Reset;7 y0 R$ z: R% G9 N7 y6 D
  40. ; p9 @& H  @/ i# W6 n" w& S8 _
  41. TIM_OCInitStructure.TIM_Pulse = Channel1Pulse;//ʹÄÜƵµÀ1ÅäÖÃ( d. `2 @& d6 C) ]: J  [
  42. TIM_OC1Init(TIM1, &TIM_OCInitStructure);. S' R/ c7 e; o, g7 Z$ a. n! E* Y
  43. , c' n- u# ^! t: f6 M
  44. /* TIM1 ¼ÆËãÆ÷ʹÄÜ*/
    : ?! p* j+ B5 f  m
  45. TIM_Cmd(TIM1, ENABLE);3 n0 Z1 \1 d+ R  |# F( c( W
  46. 1 [8 m% @- o! M: {
  47. /* TIM1 Ö÷Êä³öʹÄÜ */
    , n  ?5 F2 x/ P8 e& h/ o
  48. TIM_CtrlPWMOutputs(TIM1, ENABLE);
    9 o- `9 _) X4 G% Q
  49. }
复制代码

0 P$ |- V) t( Q, I- p' q& |  `0 K& ~, v% d0 I% ?+ P1 O" i2 j6 x

- P6 \3 s. d. b5 B+ D  K. `
收藏 评论0 发布时间:2021-11-24 15:00

举报

0个回答
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版