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

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

[复制链接]
STMCU小助手 发布时间:2021-11-24 15:00
设置PA7 作为 PWM输出# X8 D/ E2 l# ~* t6 ]
  1. void TIM_IO_Config(void); K' {9 Y, a) r7 D4 p1 j
  2. {3 p+ f+ ~$ ?; a. g+ j8 M5 E
  3. GPIO_InitTypeDef GPIO_InitStructure;+ i1 }8 G% X/ T# X; v2 Q) f

  4. ) b8 d  K( ~- _3 T( n. `/ F& n
  5. RCC_AHBPeriphClockCmd( RCC_AHBPeriph_GPIOA, ENABLE);+ b9 V# @# i- _5 `3 \3 S4 d

  6. : ~6 F" v% S" f/ S3 \
  7. GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7;//. J0 h; ^% a; }" e, C! ~: }
  8. GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
    0 ]6 X' F! p% G. f9 W" _6 S
  9. GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
    ) ?8 a9 |7 P9 ~  R
  10. GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
    2 `$ K8 H2 {* L2 e) d0 B: P7 `, M
  11. GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP ;2 j- \  P; ^7 H) q/ N8 B5 X+ q
  12. GPIO_Init(GPIOA, &GPIO_InitStructure);
    & z9 ]" b# {: j: l3 b4 ?( c$ C
  13. GPIO_PinAFConfig(GPIOA, GPIO_PinSource7, GPIO_AF_2);8 l" g/ C/ ^6 x- D0 ?7 w
  14. }( Z" l3 L3 r, D( J( G# Y: G- h5 ~
  15. 设置Timer1 为PWM模式,使能,使能PWM输出$ Q. F' q) I' n( P  e) n. s
  16. void TIM_PWM_Config(void)
    0 u* m6 j) p+ I5 o
  17. {7 @% ~3 Z8 Z3 K/ T4 v% y1 _) Z
  18. /¼ÆËãÔ¤¶¨±íµÄÖµ£¬Ò²¾ÍÊǶàÉÙ¸öʱÖÓ¼ÆÊýΪһ¸öÖÜÆÚ/
    7 j; G# W# L0 a# i+ j
  19. TimerPeriod = (SystemCoreClock / 17570 ) - 1;
    . S# z# x( J/ o6 j) t/ W) `: ~
  20. /¼ÆËãCCR1 Ìøתֵ ÔÚÕ¼¿Õ±ÈΪ50%ʱ/
    2 i! B, Z1 r% i
  21. Channel1Pulse = (uint16_t) (((uint32_t) 5 * (TimerPeriod - 1)) / 10);
    - A, q+ M: O  @6 }% s, p
  22. /* TIM1 ʱÖÓʹÄÜ /( l7 b2 p( c. Z$ n- @. d' U
  23. RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM1 , ENABLE);
    . g2 _4 V+ |7 A4 j' H0 T
  24. / Time ¶¨Ê±»ù´¡ÉèÖÃ*/
    9 B8 o. y5 G. K! D, q
  25. TIM_TimeBaseStructure.TIM_Prescaler = 0;
    1 _) l$ q8 `8 m
  26. TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; /* Time ¶¨Ê±ÉèÖÃΪÉÏÉýÑؼÆËãģʽ*/* A1 P+ k9 y- w, t
  27. TIM_TimeBaseStructure.TIM_Period = TimerPeriod;
    2 K2 H7 F9 z0 X0 K
  28. TIM_TimeBaseStructure.TIM_ClockDivision = 0;
    2 \% ]8 d3 _" e. K7 h" l
  29. TIM_TimeBaseStructure.TIM_RepetitionCounter = 0;+ i2 Q* m4 F: \$ F$ f
  30. $ c# z% \& n, d, \% c7 H; c
  31. TIM_TimeBaseInit(TIM1, &TIM_TimeBaseStructure);( B  a! Y, w  f5 }7 D
  32. /* ƵµÀ1£¬2£¬3£¬4µÄPWM ģʽÉèÖà */1 t9 ?4 e# z: g  r1 |
  33. TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1;
    5 y+ a1 n7 t& Z# F
  34. TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;
    3 C! ~% ~4 w9 g
  35. TIM_OCInitStructure.TIM_OutputNState = TIM_OutputNState_Enable;
    : @8 A# s0 ?: u! P
  36. TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_Low;
    " J1 A% X, n1 Q: P4 t* u
  37. TIM_OCInitStructure.TIM_OCNPolarity = TIM_OCNPolarity_High;# w7 a# }& C  _
  38. TIM_OCInitStructure.TIM_OCIdleState = TIM_OCIdleState_Set;
      x2 @$ O4 `  j- q
  39. TIM_OCInitStructure.TIM_OCNIdleState = TIM_OCIdleState_Reset;
    3 B0 E$ q" u, K) W: Q* i+ d7 u' B

  40. / @; U* X7 z) D% J" r7 h1 X4 U* H& ]
  41. TIM_OCInitStructure.TIM_Pulse = Channel1Pulse;//ʹÄÜƵµÀ1ÅäÖÃ1 e7 f. _" {# v% L+ \! R* q' f
  42. TIM_OC1Init(TIM1, &TIM_OCInitStructure);
      t0 ?6 ~% A1 B( k7 w; {/ t2 o
  43.   V  F  M) [, F
  44. /* TIM1 ¼ÆËãÆ÷ʹÄÜ*/; l( \/ t, r  ~" f. j4 e4 _
  45. TIM_Cmd(TIM1, ENABLE);9 g# B% m" g" a' s

  46. 3 |- ?. [2 m7 G5 k
  47. /* TIM1 Ö÷Êä³öʹÄÜ */7 {; S6 i+ K  l, w! t  k+ e) T
  48. TIM_CtrlPWMOutputs(TIM1, ENABLE);1 |8 q) ]4 V8 m2 i( k
  49. }
复制代码

, U( @) @+ v. o9 C/ V1 s0 ^$ Z' ^& j8 q& N$ ^

7 }! H6 [5 B5 C+ S; `% c9 g
收藏 评论0 发布时间:2021-11-24 15:00

举报

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