stm8 TIM2 PWM配置
来源:互联网 发布:马赛克拼图制作软件 编辑:程序博客网 时间:2024/05/19 04:27
首先这是我个人第一次写博客,希望通过这个平台这种方式记录下自己学习中的成长经历。
刚刚接触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)内部还是有个分频器,所以需要设置一下
基本讲解就是这样的,在做的过程中由于是第一次上手,也遇到很多麻烦,网上也是各种找资料, 最后也算完成了,最后希望大家共同学习进步!
0 0
- stm8 TIM2 PWM配置
- STM8四路PWM配置
- STM8 PWM
- STM8 TIM2 定时器的问题
- STM8硬件PWM设置
- stm8程序设计之PWM
- STM8S---定时器产生PWM(TIM2)
- stm32f103使用TIM1和TIM2输出PWM
- STM8S TIM2 输出PWM初始化函数
- stm32定时器TIM2的PWM输出PB3
- STM8 tim1 ch1 PWM输出
- STM32 TIM2通道重映射 PWM 无输出波形
- STM32 TIM2通道重映射 PWM 无输出波形
- PWM 配置
- PWM 配置
- PWM配置
- STM8时钟配置
- STM8S---TIM2产生PWM与TIM1定时器周期中断的时钟问题
- i2c spi总线学习
- OC_11_1类目与延展
- 高效使用Bitmaps(二) 后台加载Bitmap
- 总结:如何使用redis缓存加索引处理数据库百万级并发
- 获取系统时间和某天是星期几
- stm8 TIM2 PWM配置
- 在水经注微图中如何设置线的宽度
- HIHO #1162 : 骨牌覆盖问题·三
- centos7 上 jdk安装
- 线程池的使用
- OC_设计模式-单例模式
- 出租车计费华为校招
- 最美房子编程题
- CodeForces 115A Party(并查集)