单片机/MCU论坛
直播中

ss

7年用户 8762经验值
擅长:电源/新能源 制造/封装 RF/无线
私信 关注
[文章]

stm8s单片机pwm的配置方法

  在讲述之前,我们可以先简要了解pwm技术的用途。不说多的,我们用途比较广的首先可以是呼吸灯的制作,其次可用来给蜂鸣器发声使用,再有可以用作舵机控制,这些都是比较常见的用途。
  那么我们如何进行配置使CPU输出pwm波形呢?我们可以了解一下datasheet介绍,如图1。
  
  图1 tiM1高级定时器的功能
  stm8s的pwm功能可由其高级定时器TIM1配置输出。TIM1有四个输出通道,我们选择其中一路TIM1-CH4,默认情况下,其对应的CPU端口在PC4,如图2 AFR7位。
  
  图2 TIM1映射端口
  接下来我们通过软件编程介绍一下TIM1的pwm技术(假设我们主时钟使用8M)。
  #define BIT(n) (1《《(n))
  //(1)设置端口P4
  GPIOC-〉DDR |= 0X10; //PC4设输出模式
  GPIOC-〉CR1 |= 0X01; // PC4设为推挽输出
  GPIOC-〉CR2 = 0X0;
  //(2)设置TIM1
  TIM1-〉CR1 &= ~BIT(0); //关闭TIM1
  TIM1-〉PSCRH = 0;
  TIM1-〉PSCRL = 0x40; //64分频 8M/64=0.125M
  TIM1-〉ARRH = 0Xf4;
  TIM1-〉ARRL = 0X23; //0.125MHz/(62499+1) = 2Hz
  TIM1-〉CR1 |= BIT(7); //使能ARP,边沿对齐,向上计数
  TIM1-〉EGR |= BIT(0); //更新TIM1,使PSC有效
  TIM1-〉EGR|=0x20;//重新初始化TIM1
  TIM1-〉CCR4H = 0X7a;
  TIM1-〉CCR4L = 0X12; //占空比50%
  TIM1-〉CCMR4 = 0X68; //配置TIM1_CH4为PWM1模式输出
  TIM1-〉CCER2 |= BIT(4); //Enable TIM1_CH4 channel
  TIM1-〉BKR |= BIT(7);
  TIM1-〉CR1 |= BIT(0); //使能TIM1
  通过以软件配置,使得CPU输出pwm波形。

更多回帖

发帖
×
20
完善资料,
赚取积分