×
嵌入式 > 技术百科 > 详情

stm8 TIM2 PWM配置

发布时间:2020-12-25 发布时间:
|

首先这是我个人第一次写博客,希望通过这个平台这种方式记录下自己学习中的成长经历。


刚刚接触stm8,算刚入门,写的不对或者是需要改正的地方希望大家提出来,非常感谢! 

这一次我主要讲的是关于stm8s103输出pwm波的配置。首先上成功输出的pwm波以及寄存器相关值的图片。 


首先是时钟的配置:


CLK_ICKR &=0X01; //打开内部高速时钟

CLK_CKDIVR = 0x00;//设置时钟为内部16M高速时钟


查阅手册得到相关信息(手册是最重要的工具还有参考): 

时钟的开启操作: 

 
 

设置16M高速时钟: 

 

然后我们看一下CLK_CKDIVR寄存器: 

 

所以只要设置全为零就是1分频,就可以得到16M高速时钟; 

接下来进行TIM2的配置:


    CLK_PCKENR1 = 0x20; //tim2外设时钟使能

    TIM2_CR1  = 0X00;   //TIM2计数器禁止


这里写第一个寄存器的用意是使能tim2外设时钟(其实可以不用,默认是使能的)该寄存器的解释如下: 

 

写第二个寄存器是在开始时禁止计数器计数,,该寄存器具体如下: 

TIM2_CCMR3 |= 0X70;   //设置定时器2 3通道 PWM模式2 输出模式    

TIM2_CCER2 |= 0x03;    //低电平有效,OC1信号输出到对应的输出pin


这里主要是对定时器的模式以及使能的配置 

CCMR3是模式的寄存器, 

 

这个说明了pwm的模式: 

 

CCER2则是使能寄存器; 

接下来是pwm的核心,频率以及占空比的设置:


/* Set the Autoreload value */

    TIM2_ARRH = 0x00;

    TIM2_ARRL = 0x8a; 


    /*TIM2 Frequency=16M/138=106k*/

    TIM2_CCR3H  = 0x00;    //设置PWM输出占空比为40%

    TIM2_CCR3L  = 0X37;


下面说一下计算的方法: 

由时钟的配置可知 时钟为16M,自动重装载的值为0x008a=138; 

所以 f=16M/138=106k; 

占空比计算:0x0037=55;占空比=55/138=40%;


最后的一点配置:


    TIM2_PSCR = 0x00;       //不分频

    TIM2_IER   |= 0X00;     //禁止中断使能

    TIM2_CCMR3 |= 0X08;     //开启预装载

    TIM2_CR1    = 0X01;     //TIM2计数器使能


TIM2(TIM3)内部还是有个分频器,所以需要设置一下 

基本讲解就是这样的,在做的过程中由于是第一次上手,也遇到很多麻烦,网上也是各种找资料, 最后也算完成了,最后希望大家共同学习进步!




『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
NS推出采用第二代PowerWise技术的能源管理单元及先进电源控制器