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

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

[复制链接]
STMCU小助手 发布时间:2021-11-24 15:00
设置PA7 作为 PWM输出
  1. void TIM_IO_Config(void)
  2. {
  3. GPIO_InitTypeDef GPIO_InitStructure;

  4. RCC_AHBPeriphClockCmd( RCC_AHBPeriph_GPIOA, ENABLE);

  5. GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7;//
  6. GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
  7. GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  8. GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
  9. GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP ;
  10. GPIO_Init(GPIOA, &GPIO_InitStructure);
  11. GPIO_PinAFConfig(GPIOA, GPIO_PinSource7, GPIO_AF_2);
  12. }
  13. 设置Timer1 为PWM模式,使能,使能PWM输出
  14. void TIM_PWM_Config(void)
  15. {
  16. /¼ÆËãÔ¤¶¨±íµÄÖµ£¬Ò²¾ÍÊǶàÉÙ¸öʱÖÓ¼ÆÊýΪһ¸öÖÜÆÚ/
  17. TimerPeriod = (SystemCoreClock / 17570 ) - 1;
  18. /¼ÆËãCCR1 Ìø×ªÖµ ÔÚÕ¼¿Õ±ÈΪ50%ʱ/
  19. Channel1Pulse = (uint16_t) (((uint32_t) 5 * (TimerPeriod - 1)) / 10);
  20. /* TIM1 ʱÖÓʹÄÜ /
  21. RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM1 , ENABLE);
  22. / Time ¶¨Ê±»ù´¡ÉèÖÃ*/
  23. TIM_TimeBaseStructure.TIM_Prescaler = 0;
  24. TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; /* Time ¶¨Ê±ÉèÖÃΪÉÏÉýÑØ¼ÆËãģʽ*/
  25. TIM_TimeBaseStructure.TIM_Period = TimerPeriod;
  26. TIM_TimeBaseStructure.TIM_ClockDivision = 0;
  27. TIM_TimeBaseStructure.TIM_RepetitionCounter = 0;

  28. TIM_TimeBaseInit(TIM1, &TIM_TimeBaseStructure);
  29. /* ƵµÀ1£¬2£¬3£¬4µÄPWM ģʽÉèÖà */
  30. TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1;
  31. TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;
  32. TIM_OCInitStructure.TIM_OutputNState = TIM_OutputNState_Enable;
  33. TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_Low;
  34. TIM_OCInitStructure.TIM_OCNPolarity = TIM_OCNPolarity_High;
  35. TIM_OCInitStructure.TIM_OCIdleState = TIM_OCIdleState_Set;
  36. TIM_OCInitStructure.TIM_OCNIdleState = TIM_OCIdleState_Reset;

  37. TIM_OCInitStructure.TIM_Pulse = Channel1Pulse;//ʹÄÜÆµµÀ1ÅäÖÃ
  38. TIM_OC1Init(TIM1, &TIM_OCInitStructure);

  39. /* TIM1 ¼ÆËãÆ÷ʹÄÜ*/
  40. TIM_Cmd(TIM1, ENABLE);

  41. /* TIM1 Ö÷Êä³öʹÄÜ */
  42. TIM_CtrlPWMOutputs(TIM1, ENABLE);
  43. }
复制代码



收藏 评论0 发布时间:2021-11-24 15:00

举报

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