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

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

[复制链接]
STMCU小助手 发布时间:2021-11-24 15:00
设置PA7 作为 PWM输出
5 c$ L* e* I( d6 Y* O" F
  1. void TIM_IO_Config(void). \% k  s$ f! K1 G3 e' H% J
  2. {( b, c6 C2 }6 O. u- P9 o
  3. GPIO_InitTypeDef GPIO_InitStructure;
    2 K. I/ Z* W2 m
  4. ) g" Y, {* r$ ?/ z% G- W) W
  5. RCC_AHBPeriphClockCmd( RCC_AHBPeriph_GPIOA, ENABLE);
    9 k( t" O2 |; d, s+ C
  6. ! X; k! j& o; P% K0 ?* _  a+ S
  7. GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7;//; t- h' S) o$ t8 i
  8. GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
    % i, h1 E% ]1 V
  9. GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
    + c$ `7 B) |7 }+ w
  10. GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
    . V( l$ ~' E2 }( n5 @' ~# s
  11. GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP ;
    + f2 r6 @, k, D* A# o& J7 X7 G
  12. GPIO_Init(GPIOA, &GPIO_InitStructure);
    ( v  W3 J$ n5 @. e
  13. GPIO_PinAFConfig(GPIOA, GPIO_PinSource7, GPIO_AF_2);
    2 N7 g  D& i* H' x
  14. }
    8 W8 O) n9 G# h: n6 C
  15. 设置Timer1 为PWM模式,使能,使能PWM输出2 |! J& `% t8 `8 h
  16. void TIM_PWM_Config(void), n; X3 o3 D) @$ g! ]
  17. {
    % K. d) E, X: T! _& U
  18. /¼ÆËãÔ¤¶¨±íµÄÖµ£¬Ò²¾ÍÊǶàÉÙ¸öʱÖÓ¼ÆÊýΪһ¸öÖÜÆÚ/
    * G* \! n9 K& d0 v3 v8 e
  19. TimerPeriod = (SystemCoreClock / 17570 ) - 1;& k" q2 S. S2 @, Q7 H
  20. /¼ÆËãCCR1 Ìøתֵ ÔÚÕ¼¿Õ±ÈΪ50%ʱ/* a$ o+ \9 l& ^; t4 J. b* P
  21. Channel1Pulse = (uint16_t) (((uint32_t) 5 * (TimerPeriod - 1)) / 10);' ~$ M: X* {! W' d
  22. /* TIM1 ʱÖÓʹÄÜ /- g, ?0 K& g0 K* s  N4 f5 y
  23. RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM1 , ENABLE);
    $ h, }0 l( |0 B6 q' Z3 k
  24. / Time ¶¨Ê±»ù´¡ÉèÖÃ*/$ `8 \, M% v5 A- E
  25. TIM_TimeBaseStructure.TIM_Prescaler = 0;$ F* A' q) E8 \( w6 ~
  26. TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; /* Time ¶¨Ê±ÉèÖÃΪÉÏÉýÑؼÆËãģʽ*/
    8 X9 {7 C  y8 a* l
  27. TIM_TimeBaseStructure.TIM_Period = TimerPeriod;% l* ~5 J# }# D9 o) ^* D
  28. TIM_TimeBaseStructure.TIM_ClockDivision = 0;2 ?3 K7 F0 m8 |4 t- z0 c
  29. TIM_TimeBaseStructure.TIM_RepetitionCounter = 0;
    5 Q% U' g  b. F: V' B2 z& J

  30. 2 {5 a+ q5 v! L/ E
  31. TIM_TimeBaseInit(TIM1, &TIM_TimeBaseStructure);7 m  i( v9 n8 M. R1 I% O- k
  32. /* ƵµÀ1£¬2£¬3£¬4µÄPWM ģʽÉèÖà */" P' u: [7 }$ i- k) |. c0 F- u6 o
  33. TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1;
    6 O% D* f. a5 |- W0 l, E3 r
  34. TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;% J" Z& d. L3 W( X
  35. TIM_OCInitStructure.TIM_OutputNState = TIM_OutputNState_Enable;
    $ j' q4 t. x$ q8 `5 N. `$ e
  36. TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_Low;
    1 I- J* `/ r1 b# @  A
  37. TIM_OCInitStructure.TIM_OCNPolarity = TIM_OCNPolarity_High;
    $ J, n( E0 f3 Z
  38. TIM_OCInitStructure.TIM_OCIdleState = TIM_OCIdleState_Set;
    " V3 _( Q) }8 o" _* k0 @
  39. TIM_OCInitStructure.TIM_OCNIdleState = TIM_OCIdleState_Reset;1 W- a4 |6 f3 G, \% R3 Y! m% ~! L
  40. , K0 [1 ^) f# J
  41. TIM_OCInitStructure.TIM_Pulse = Channel1Pulse;//ʹÄÜƵµÀ1ÅäÖÃ
    + A* ]& J1 _  T' W6 ?
  42. TIM_OC1Init(TIM1, &TIM_OCInitStructure);4 T+ t) X8 Q0 G" R$ g" ?
  43. ! h& x* q( S2 I) B" [+ @8 g* K. D
  44. /* TIM1 ¼ÆËãÆ÷ʹÄÜ*/# y2 w0 g& |- W: m8 o2 b
  45. TIM_Cmd(TIM1, ENABLE);
    ( U' A( w. [" E
  46. $ b+ D1 L# V  }: \. z6 I$ Z5 L4 X
  47. /* TIM1 Ö÷Êä³öʹÄÜ */# V7 Q9 w# J$ F, F6 ~1 D7 w
  48. TIM_CtrlPWMOutputs(TIM1, ENABLE);6 T. ?( L: t0 T: k) {
  49. }
复制代码
( j4 o* A9 Q; V; b

2 X. [$ b' N. @
* v, v" l8 a/ e1 {# \
收藏 评论0 发布时间:2021-11-24 15:00

举报

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