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

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

[复制链接]
STMCU小助手 发布时间:2021-11-24 15:00
设置PA7 作为 PWM输出
* l- r& ]1 Z& V; x  X
  1. void TIM_IO_Config(void)& C% C# w1 h/ l4 o9 F8 A7 k
  2. {/ F$ i" M4 r) M+ N/ C
  3. GPIO_InitTypeDef GPIO_InitStructure;
    . h* K' X% V7 q( ]3 L$ j4 h

  4. 4 q& t0 C/ i  S8 R( y3 n
  5. RCC_AHBPeriphClockCmd( RCC_AHBPeriph_GPIOA, ENABLE);% q2 G1 v6 R* D

  6. 7 {. ^, @1 _- ]& Q
  7. GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7;//
    4 C% _% h9 s  L6 G% F  f. Y+ P6 I9 z
  8. GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;* R/ }* r* U2 K% R
  9. GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;3 l+ M/ w5 W- D- @  |$ {, V7 O& h
  10. GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;9 d5 t# v9 L4 s, L/ t
  11. GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP ;
    / p/ U" a" Q7 L
  12. GPIO_Init(GPIOA, &GPIO_InitStructure);
    8 I' D5 I2 z% S) Y$ j- U
  13. GPIO_PinAFConfig(GPIOA, GPIO_PinSource7, GPIO_AF_2);
    ; v1 ]/ G- g/ N- e
  14. }6 `" `2 d- _4 b, U
  15. 设置Timer1 为PWM模式,使能,使能PWM输出+ t- `3 `7 A2 ~
  16. void TIM_PWM_Config(void)8 L4 U- g( O& q: w1 p
  17. {
    % c$ q8 ^# A% p; D) O
  18. /¼ÆËãÔ¤¶¨±íµÄÖµ£¬Ò²¾ÍÊǶàÉÙ¸öʱÖÓ¼ÆÊýΪһ¸öÖÜÆÚ/( i" ^/ f) Q$ V/ F9 W$ _
  19. TimerPeriod = (SystemCoreClock / 17570 ) - 1;
    3 _$ F6 o2 f9 o- k! E
  20. /¼ÆËãCCR1 Ìø×ªÖµ ÔÚÕ¼¿Õ±ÈΪ50%ʱ/
    : l# p; ]6 _, {: J3 O# w) {
  21. Channel1Pulse = (uint16_t) (((uint32_t) 5 * (TimerPeriod - 1)) / 10);5 Z" J! l6 g% g1 k" D! k, k- b
  22. /* TIM1 ʱÖÓʹÄÜ /
    + w, _6 A) t0 `1 @$ J' b  ?
  23. RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM1 , ENABLE);- ?7 Z) p7 _6 a
  24. / Time ¶¨Ê±»ù´¡ÉèÖÃ*/
    # m/ g( v6 y' w# O7 W# B: _
  25. TIM_TimeBaseStructure.TIM_Prescaler = 0;8 V1 t0 p" d- r& \4 A( c3 S- w8 V+ e
  26. TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; /* Time ¶¨Ê±ÉèÖÃΪÉÏÉýÑØ¼ÆËãģʽ*/" b% L6 }: Z2 x' P( \  ^0 l2 l! P
  27. TIM_TimeBaseStructure.TIM_Period = TimerPeriod;
    & v! l4 p. _+ p, [; n
  28. TIM_TimeBaseStructure.TIM_ClockDivision = 0;% ?, l9 ?+ F+ m
  29. TIM_TimeBaseStructure.TIM_RepetitionCounter = 0;, {7 Y, ]+ l- b9 w! {
  30. ' C0 w) T$ [# D, p/ Z
  31. TIM_TimeBaseInit(TIM1, &TIM_TimeBaseStructure);
    - }+ v) n2 z% @+ v* ]
  32. /* ƵµÀ1£¬2£¬3£¬4µÄPWM ģʽÉèÖà */
    / A! r6 o* z' T; m$ e9 c
  33. TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1;4 r% N: H0 c2 L/ D
  34. TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;5 B3 [( x- W! E* ^7 D, L
  35. TIM_OCInitStructure.TIM_OutputNState = TIM_OutputNState_Enable;; s5 t! p2 _; |1 c
  36. TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_Low;$ a5 t- Q7 c1 D/ d8 e6 K7 R
  37. TIM_OCInitStructure.TIM_OCNPolarity = TIM_OCNPolarity_High;
    , Q3 W) {' [( D% [5 `% ^
  38. TIM_OCInitStructure.TIM_OCIdleState = TIM_OCIdleState_Set;' W  W4 h( @# l( b/ U
  39. TIM_OCInitStructure.TIM_OCNIdleState = TIM_OCIdleState_Reset;
    8 x* v( Z' J3 G% _4 B( t. ?

  40. ! ]$ W2 q9 d* Z
  41. TIM_OCInitStructure.TIM_Pulse = Channel1Pulse;//ʹÄÜÆµµÀ1ÅäÖÃ5 j3 {5 ^& n& Z6 Q7 S7 U6 C4 S
  42. TIM_OC1Init(TIM1, &TIM_OCInitStructure);- v3 H' G/ n" i" P

  43. & i* f- i, m1 b( e6 M" E: l
  44. /* TIM1 ¼ÆËãÆ÷ʹÄÜ*// R$ V$ L+ x; D8 z
  45. TIM_Cmd(TIM1, ENABLE);
    8 B& r5 R. {% P/ n1 p/ ~
  46. 5 f) o0 Q) e( H! D8 U: w& H0 }
  47. /* TIM1 Ö÷Êä³öʹÄÜ */
    7 f. [- G2 R, t% y% m' @  U+ J
  48. TIM_CtrlPWMOutputs(TIM1, ENABLE);
    , S' }! T, d- [
  49. }
复制代码
! ~7 @( w; Y3 J5 Z* a% `

# r% ?6 N7 {6 Z; ]$ C3 E( {# f5 r1 T. `
收藏 评论0 发布时间:2021-11-24 15:00

举报

0个回答

所属标签

相似技术帖

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