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

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

[复制链接]
STMCU小助手 发布时间:2021-11-24 15:00
设置PA7 作为 PWM输出
: ~. @2 Y6 V1 K6 ~7 }
  1. void TIM_IO_Config(void)0 a' M4 g8 A' h. m4 A0 _
  2. {
    + L& X6 J  R/ q2 a6 z4 N, D- S* r
  3. GPIO_InitTypeDef GPIO_InitStructure;2 \$ H7 f$ X' g% {

  4. - X! q' X8 v1 L' r% P3 O6 i
  5. RCC_AHBPeriphClockCmd( RCC_AHBPeriph_GPIOA, ENABLE);/ H9 z, m' ~4 s% P+ y* @0 o/ l

  6. % T" e4 z1 C5 l4 K( Z
  7. GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7;//; t. W) D# q8 u
  8. GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;% k* C  f4 ]( ~. L7 `
  9. GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;% g* K- E( g& z$ a2 @
  10. GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
    / J# i1 [4 H  a9 ~  l7 C  u* Q
  11. GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP ;
    , K) l: r' \- v: j8 n
  12. GPIO_Init(GPIOA, &GPIO_InitStructure);
    4 Q6 c- {8 |) T5 ?1 _' \2 [
  13. GPIO_PinAFConfig(GPIOA, GPIO_PinSource7, GPIO_AF_2);
    3 q$ i. x, V$ G" |$ x5 y7 `
  14. }
    - s3 W8 y5 s2 |5 n/ a; S, @
  15. 设置Timer1 为PWM模式,使能,使能PWM输出
    7 ]! W6 z. v# \
  16. void TIM_PWM_Config(void)( y$ E, O/ c3 r1 a8 n
  17. {
    3 @+ I* R$ Z& U
  18. /¼ÆËãÔ¤¶¨±íµÄÖµ£¬Ò²¾ÍÊǶàÉÙ¸öʱÖÓ¼ÆÊýΪһ¸öÖÜÆÚ/6 f, h) c# J1 o4 n! b: [
  19. TimerPeriod = (SystemCoreClock / 17570 ) - 1;4 q. i: l6 h& y+ g  Q2 }
  20. /¼ÆËãCCR1 Ìøתֵ ÔÚÕ¼¿Õ±ÈΪ50%ʱ/
    . [, E, n0 Z" z/ Z. g0 ]
  21. Channel1Pulse = (uint16_t) (((uint32_t) 5 * (TimerPeriod - 1)) / 10);+ o& B8 o! a9 `6 f
  22. /* TIM1 ʱÖÓʹÄÜ /& o& E, U9 |$ N* n% K( a+ {
  23. RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM1 , ENABLE);
    7 x$ ]& \, f1 g8 V+ E& t
  24. / Time ¶¨Ê±»ù´¡ÉèÖÃ*/" D( m: r# g3 |. y1 S
  25. TIM_TimeBaseStructure.TIM_Prescaler = 0;
    $ s, [% ^/ R: |) q$ z
  26. TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; /* Time ¶¨Ê±ÉèÖÃΪÉÏÉýÑؼÆËãģʽ*/
    7 k0 |) K' {! R
  27. TIM_TimeBaseStructure.TIM_Period = TimerPeriod;
    * G5 K4 Z' v9 y4 l0 Z9 E! w
  28. TIM_TimeBaseStructure.TIM_ClockDivision = 0;
    ! y0 U* _- ~, M  b9 g
  29. TIM_TimeBaseStructure.TIM_RepetitionCounter = 0;6 Z6 n; }! U  I- N+ I' Q! L
  30. ) \9 z/ [$ W! i% @3 E
  31. TIM_TimeBaseInit(TIM1, &TIM_TimeBaseStructure);
    9 q* `5 _, N! X  A! E2 P: k; f
  32. /* ƵµÀ1£¬2£¬3£¬4µÄPWM ģʽÉèÖà */
    $ R3 \1 P' ~: z
  33. TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1;3 c/ U5 O3 O: H, `% v- e' s
  34. TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;9 T" X* Z/ p5 i) W
  35. TIM_OCInitStructure.TIM_OutputNState = TIM_OutputNState_Enable;
    - C% x/ J3 a' z; b( d* v+ e
  36. TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_Low;* b% ]7 {% c0 J1 \, Q
  37. TIM_OCInitStructure.TIM_OCNPolarity = TIM_OCNPolarity_High;
    ) y/ i  S! G3 Z% m' j$ u
  38. TIM_OCInitStructure.TIM_OCIdleState = TIM_OCIdleState_Set;
    . X' C& _3 J2 ~: b
  39. TIM_OCInitStructure.TIM_OCNIdleState = TIM_OCIdleState_Reset;- n) C+ s0 f9 h& b  c

  40. 9 B. f( e2 n6 k$ _- V% _
  41. TIM_OCInitStructure.TIM_Pulse = Channel1Pulse;//ʹÄÜƵµÀ1ÅäÖÃ+ b0 a5 X6 ~! r4 I+ e* w
  42. TIM_OC1Init(TIM1, &TIM_OCInitStructure);/ D2 _1 z  ]$ e* ?6 ^

  43. ! a/ |7 S9 Y* q) j
  44. /* TIM1 ¼ÆËãÆ÷ʹÄÜ*/2 l2 S: @" ^; N/ G
  45. TIM_Cmd(TIM1, ENABLE);
    , u" F% J: ^' }3 o+ A0 v, h" C
  46. 3 Q6 a* Z4 n- b. g+ j3 H3 Z/ J% J
  47. /* TIM1 Ö÷Êä³öʹÄÜ */
    - T- v. [- |" e- i( `5 r
  48. TIM_CtrlPWMOutputs(TIM1, ENABLE);
    ( W! I% T$ ?4 y5 D6 y& U6 O+ R
  49. }
复制代码
2 f4 ]& [) Z- s" G1 ]5 A+ ^
+ F6 q- g$ ]; I: b' S& B

0 ~1 x; N1 s2 ^+ ?6 e% x
收藏 评论0 发布时间:2021-11-24 15:00

举报

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