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

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

[复制链接]
STMCU小助手 发布时间:2021-11-24 15:00
设置PA7 作为 PWM输出' O; O2 g* X, @  s  d) b5 ^, J
  1. void TIM_IO_Config(void)
    & N$ Y3 u3 P& L" I8 [
  2. {
    9 O! T- A6 R9 Q# u
  3. GPIO_InitTypeDef GPIO_InitStructure;
    8 x7 U. p' ^7 g

  4. $ ?/ }4 S9 Q- z
  5. RCC_AHBPeriphClockCmd( RCC_AHBPeriph_GPIOA, ENABLE);: G2 k0 q8 C: v$ ]

  6. 9 e8 T, G* F6 C" a3 d  d$ _
  7. GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7;//, e4 f* e# Y2 S5 z' ]  e5 ~
  8. GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
    0 Y: H9 G/ m" h# r$ k' b3 H( P
  9. GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
    + O; v8 Y5 n' k* ^
  10. GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
    . p. X6 m1 q1 A
  11. GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP ;
    4 v- i6 Z* j8 v9 V" I
  12. GPIO_Init(GPIOA, &GPIO_InitStructure);
    6 X' G1 g2 ^& a# E, Z2 ~
  13. GPIO_PinAFConfig(GPIOA, GPIO_PinSource7, GPIO_AF_2);
    2 o( H5 Q9 e7 U, n; m
  14. }
    6 M/ B3 h/ p. {. X
  15. 设置Timer1 为PWM模式,使能,使能PWM输出
    $ p' H( A- r/ d) {  S- `0 L
  16. void TIM_PWM_Config(void)
    % U& ?3 X/ J6 h3 @# ?
  17. {! ?' d+ R5 J! k9 {7 L7 @
  18. /¼ÆËãÔ¤¶¨±íµÄÖµ£¬Ò²¾ÍÊǶàÉÙ¸öʱÖÓ¼ÆÊýΪһ¸öÖÜÆÚ/
    4 x- i7 C" \: \3 }0 R9 n* m
  19. TimerPeriod = (SystemCoreClock / 17570 ) - 1;( R) R9 a9 a3 h4 U4 m
  20. /¼ÆËãCCR1 Ìøתֵ ÔÚÕ¼¿Õ±ÈΪ50%ʱ/
    5 ]% ~/ g  |, l- d* m7 [9 f; _; [
  21. Channel1Pulse = (uint16_t) (((uint32_t) 5 * (TimerPeriod - 1)) / 10);
    ' U5 f$ [* s* a4 s- C
  22. /* TIM1 ʱÖÓʹÄÜ /
    / i& T( C1 F' z6 W, Q9 g* E
  23. RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM1 , ENABLE);* c$ N* h5 r. A. Q2 c! F. x( [
  24. / Time ¶¨Ê±»ù´¡ÉèÖÃ*/
    * Z. W! A# @3 A- M; j
  25. TIM_TimeBaseStructure.TIM_Prescaler = 0;3 O' w+ R2 p* B) B
  26. TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; /* Time ¶¨Ê±ÉèÖÃΪÉÏÉýÑؼÆËãģʽ*/
    9 y( R; ~' f0 h" U: C# s6 w
  27. TIM_TimeBaseStructure.TIM_Period = TimerPeriod;
    & _6 E5 g* U, A
  28. TIM_TimeBaseStructure.TIM_ClockDivision = 0;; V. ?' K" \/ F  U7 d  {2 u
  29. TIM_TimeBaseStructure.TIM_RepetitionCounter = 0;$ v2 B! k# o9 A

  30. * P" b$ H+ @$ x& m
  31. TIM_TimeBaseInit(TIM1, &TIM_TimeBaseStructure);$ Y; J& P: V5 |5 C/ u0 E; |
  32. /* ƵµÀ1£¬2£¬3£¬4µÄPWM ģʽÉèÖà */
    # A8 b3 X0 A8 P5 a
  33. TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1;: X1 I/ ?. Z4 p+ ^
  34. TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;
    . n2 J, w. D8 b, g( U6 I. w- _
  35. TIM_OCInitStructure.TIM_OutputNState = TIM_OutputNState_Enable;
    2 }' L" D/ e+ _" P( [  K
  36. TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_Low;
    9 N+ H. e/ J/ _6 u" D) ^, k  ^% @6 x: v' y
  37. TIM_OCInitStructure.TIM_OCNPolarity = TIM_OCNPolarity_High;
    / R' i+ O# `* e- I% E
  38. TIM_OCInitStructure.TIM_OCIdleState = TIM_OCIdleState_Set;" Q3 I9 _" ^' M* s
  39. TIM_OCInitStructure.TIM_OCNIdleState = TIM_OCIdleState_Reset;) `" W& s$ p7 \9 c; ^

  40. " g8 Q2 k$ s  j1 ?. M
  41. TIM_OCInitStructure.TIM_Pulse = Channel1Pulse;//ʹÄÜƵµÀ1ÅäÖÃ
    4 M; b! g# I1 F" f
  42. TIM_OC1Init(TIM1, &TIM_OCInitStructure);7 ?' g+ P( n: I5 P
  43. - }* g4 V+ M4 c, y) {) f' N
  44. /* TIM1 ¼ÆËãÆ÷ʹÄÜ*/4 J% Q3 T' @. c5 T6 K* n
  45. TIM_Cmd(TIM1, ENABLE);5 }- b0 I0 w2 v) P9 f, n
  46. , R; H1 b# f+ [  r+ i& c6 N
  47. /* TIM1 Ö÷Êä³öʹÄÜ */
    , s& k+ e) o6 e* b- ^
  48. TIM_CtrlPWMOutputs(TIM1, ENABLE);
    2 I! ]( z! B" C. O: K
  49. }
复制代码

( L' U# ~. H2 x  e3 ]" |5 J: I* I6 {& v4 _- m
7 M6 M6 Z( R+ x* d4 C% M9 {3 |$ O
收藏 评论0 发布时间:2021-11-24 15:00

举报

0个回答
关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版