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

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

[复制链接]
STMCU小助手 发布时间:2021-11-24 15:00
设置PA7 作为 PWM输出
# ]+ F8 v5 Z5 I# y+ |- n7 H# M7 ~
  1. void TIM_IO_Config(void)
    # v% B4 S" t2 ?4 T) v/ u/ R
  2. {9 h' V2 C/ v3 x8 m% H2 [
  3. GPIO_InitTypeDef GPIO_InitStructure;
    ' |/ w. v& P, \: c$ i# Z- k  p# _

  4. ' l4 f% h: y0 D& ~  c5 l2 k
  5. RCC_AHBPeriphClockCmd( RCC_AHBPeriph_GPIOA, ENABLE);
    $ k* @) e' F9 u- `2 d! A! X

  6. : g* ~: Y! C  K' {; R" B
  7. GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7;//
    ; K$ T. Q( ]$ N( A' `
  8. GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;" a* h& _8 P6 z6 G4 b( {) R( ?5 o
  9. GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;% B! \5 K4 a; x: Q
  10. GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
    ; K+ y$ O* L% r1 u; }
  11. GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP ;
    9 |- W$ }2 [% z
  12. GPIO_Init(GPIOA, &GPIO_InitStructure);# h( H! P; a& {& @& S3 I6 j  d1 j5 e
  13. GPIO_PinAFConfig(GPIOA, GPIO_PinSource7, GPIO_AF_2);% j$ I0 j: J  f4 @! ^8 x  i# \0 w) h
  14. }
    . X1 [# ~) j! D1 d
  15. 设置Timer1 为PWM模式,使能,使能PWM输出
    8 s" w+ y# J/ F2 i
  16. void TIM_PWM_Config(void)  u# ^  T1 K& b  _
  17. {
    9 ]+ j* B8 v7 g+ Y$ d
  18. /¼ÆËãÔ¤¶¨±íµÄÖµ£¬Ò²¾ÍÊǶàÉÙ¸öʱÖÓ¼ÆÊýΪһ¸öÖÜÆÚ/
    4 L% `: e# f% A' n
  19. TimerPeriod = (SystemCoreClock / 17570 ) - 1;
    % @8 T, Z1 ~* u0 r( {4 w# M
  20. /¼ÆËãCCR1 Ìø×ªÖµ ÔÚÕ¼¿Õ±ÈΪ50%ʱ/$ K  o9 L/ `# ]1 }2 r/ N
  21. Channel1Pulse = (uint16_t) (((uint32_t) 5 * (TimerPeriod - 1)) / 10);/ F- [( ~9 E) \4 X
  22. /* TIM1 ʱÖÓʹÄÜ /; a4 i* w4 @: X9 z9 D+ R0 O
  23. RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM1 , ENABLE);7 f; F5 r" |) G6 F
  24. / Time ¶¨Ê±»ù´¡ÉèÖÃ*/5 E: d' [( a- p
  25. TIM_TimeBaseStructure.TIM_Prescaler = 0;
    & a$ ]. S4 I, h5 F: l/ V$ u3 _
  26. TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; /* Time ¶¨Ê±ÉèÖÃΪÉÏÉýÑØ¼ÆËãģʽ*/
    . D) g" k3 i$ S) s
  27. TIM_TimeBaseStructure.TIM_Period = TimerPeriod;
    * I/ l% G9 d+ s5 M  F) v+ a  {. d
  28. TIM_TimeBaseStructure.TIM_ClockDivision = 0;
    6 a4 X3 I: Z' R  k9 p/ c
  29. TIM_TimeBaseStructure.TIM_RepetitionCounter = 0;# N: G3 G+ i+ p* H- n" {2 q

  30. ; {- j, B9 {2 \
  31. TIM_TimeBaseInit(TIM1, &TIM_TimeBaseStructure);
    6 W% w5 g7 T/ Y5 l/ b
  32. /* ƵµÀ1£¬2£¬3£¬4µÄPWM ģʽÉèÖà */2 f% D8 D8 ]5 z% i7 V2 d2 \  B
  33. TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1;
    3 U; f3 A. d, l9 x! P7 B' Z# U: ^3 X: d
  34. TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;& Q8 M) x& \# R- v& v/ o- O" |
  35. TIM_OCInitStructure.TIM_OutputNState = TIM_OutputNState_Enable;$ Q3 ^" \3 p" L. m, F) c
  36. TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_Low;
    / U9 G, `+ t. I7 v$ f
  37. TIM_OCInitStructure.TIM_OCNPolarity = TIM_OCNPolarity_High;) S0 t, Q9 R  k1 Z" [) `
  38. TIM_OCInitStructure.TIM_OCIdleState = TIM_OCIdleState_Set;7 S: c8 x. W% E7 b, D5 q
  39. TIM_OCInitStructure.TIM_OCNIdleState = TIM_OCIdleState_Reset;
    ; _$ R4 w( [; e4 y/ C9 f, M% ]/ m

  40. 5 J: |1 ^( o/ I, e" N
  41. TIM_OCInitStructure.TIM_Pulse = Channel1Pulse;//ʹÄÜÆµµÀ1ÅäÖÃ
    + L! d; A1 D  N4 {
  42. TIM_OC1Init(TIM1, &TIM_OCInitStructure);/ F2 _" m8 U, q( Y( N

  43. ) M* M& g/ D7 Z( j# X1 @, c
  44. /* TIM1 ¼ÆËãÆ÷ʹÄÜ*/. i: W$ M$ _. L% y
  45. TIM_Cmd(TIM1, ENABLE);/ v% `+ [/ i- \9 d' s6 |

  46. / n0 x: c7 h8 o$ e
  47. /* TIM1 Ö÷Êä³öʹÄÜ */
    ) f: ~! _8 m- m* R8 t
  48. TIM_CtrlPWMOutputs(TIM1, ENABLE);0 u3 f+ r% T. i* t$ n( U% y
  49. }
复制代码

* @% {9 i9 e6 k! z9 n8 G! V* O" i3 ^6 r% G; {8 X
* \! A  J2 o* ?
收藏 评论0 发布时间:2021-11-24 15:00

举报

0个回答

所属标签

相似技术帖

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