zoukankan      html  css  js  c++  java
  • PWM输出

    PWM(Pulse Width Modulation),脉冲宽度调制。

    脉冲的频率由ARR控制,ARR越大频率越小;占空比由CCRx控制,CCRx越小占空比越大。

    捕获/比较通道的输出部分(通道1) :

    CCER:捕获比较使能寄存器

    CCMR:捕获比较模式寄存器

    OC:输出比较

    计数器寄存器(TIMx_CNT) 与捕获比较寄存器(CCR1)进行比较,TIMx_CCMR的OC1M控制向上捕获还是向下捕获,输出OC1erf,

    TIMx_CCER的CC1P控制输出极性,TIMx_CCER的CC1E控制输出使能。

    需要用到TIM_OC1Init(TIM_TypeDef* TIMx, TIM_OCInitTypeDef* TIM_OCInitStruct);

    TIM_OCInitTypeDef  TIM_OCInitStructure; 

      TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM2; //选择定时器模式:TIM脉冲宽度调制模式2
      TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable; //比较输出使能
      TIM_OCInitStructure.TIM_Pulse = 0; //设置待装入捕获比较寄存器的脉冲值
      TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High; //输出极性:TIM输出比较极性高

    TIM_OC1Init(TIM8, &TIM_OCInitStructure); //根据TIM_OCInitStruct中指定的参数初始化外设TIM8

      TIM_OC1PreloadConfig(TIM8, TIM_OCPreload_Enable);  //CH1使能输出比较预装载  

      TIM_ARRPreloadConfig(TIM8, ENABLE); //使能自动重装载的预装载寄存器

    (假如用到的pin脚需要重映射(Remap)应调用RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE)和GPIO_PinRemapConfig(GPIO_PartialReamp_TIMx,ENABLE)。)

    在main中调用TIM_SetComparex(ccrx)改变占空比;

  • 相关阅读:
    mapbox-gl开发:deck.gl轨迹图效果
    vscode双击选中单词,设置短横线不分隔
    CSS自定义滚动条样式,兼容IE浏览器
    flv 视频播放器
    mapbox、echarts实现地图流动效果
    echarts 小时图
    deckgl-triplayer流动效果
    vue使用flv视频监控组件
    qt学习中遇到的问题及处理方法
    GitHub入门
  • 原文地址:https://www.cnblogs.com/wk1992/p/10739110.html
Copyright © 2011-2022 走看看