STM8S---定时器产生PWM(TIM2)
来源:互联网 发布:如何下载windows 10 编辑:程序博客网 时间:2024/06/06 07:34
- 说明
- 代码
1 说明
- 采用STM8S内部时钟(HSI);
- PWM模式2;
- 占空比为50%,频率为2Hz(方便测试LED灯);
- PD2口外接LED灯,PD2口输出PWM波;
- 系统时钟初始化很重要:CLK_CKDIVR |= 0x08;
2 代码
/*TIM2_CH3 PWMPD2 output*/#include <STM8S003F3P.h>void CLK_init(void){ CLK_ICKR |= 0X01; //使能内部高速时钟 HSI CLK_CKDIVR |= 0x08; //16M内部RC经2分频后系统时钟为8M while(!(CLK_ICKR&0x02)); //HSI准备就绪 CLK_SWR=0xe1; //HSI为主时钟源 }void Init_Tim2(void){ TIM2_CCMR3 |= 0X70; //设置定时器2三通道(PD2)输出比较三模式 TIM2_CCMR3 |= 0X04; //输出比较3预装载使能 TIM2_CCER2 |= 0x03; //通道3使能,低电平有效,配置为输出 //初始化时钟分频器为1,即计数器的时钟频率为Fmaster=8M/64=0.125MHZ TIM2_PSCR = 0X06; //初始化自动装载寄存器,决定PWM 方波的频率,Fpwm=0.125M/62500=2HZ TIM2_ARRH = 62500/256; TIM2_ARRL = 62500%256; //初始化比较寄存器,决定PWM 方波的占空比:5000/10000 = 50% TIM2_CCR3H = 31250/256; TIM2_CCR3L = 31250%256; // 启动计数;更新中断失能 TIM2_CR1 |= 0x81; //TIM2_IER |= 0x00; }void Init_GPIO(void){ /*设置为推挽输出,PD2接了LED灯*/ PD_DDR |= 0X04; //设置PD2端口为输出模式 PD_CR1 |= 0X04; //设置PD2端口为推挽输出模式 PD_CR2 &= 0XFD; PA_DDR |= 0X08; //设置PA3端口为输出模式 PA_CR1 |= 0X08; //设置PA3端口为推挽输出模式 PA_CR2 |= 0XF7;}void main(void){ CLK_init(); Init_GPIO(); Init_Tim2(); while (1);}
0 0
- STM8S---定时器产生PWM(TIM2)
- STM8S---TIM2产生PWM与TIM1定时器周期中断的时钟问题
- STM8S TIM2 输出PWM初始化函数
- stm32定时器TIM2的PWM输出PB3
- 定时器产生PWM
- 单片机定时器产生pwm
- 通用定时器产生PWM
- CC2530定时器T1产生PWM
- stm32 高级定时器产生PWM
- STM8S TIM1/TIM2 初始化函数
- stm8 TIM2 PWM配置
- stm32F401在HAL库下的TIM2初始化产生PWM,后附直接寄存器
- 略涉用430的定时器产生PWM波
- STM32定时器产生PWM--呼吸灯
- 基于stm32f103zet6的定时器的学习3(定时器产生4路PWM)
- STM8S通过官方LIB使用定时器1从CH4输出PWM到
- STM8S的TIM1 PWM设置(寄存器版本)
- STM32通用定时器(TIM2-5)基本用法
- Java中的异常 Exception
- java socket通信-传输文件图片--传输图片
- Mac 命令行删除包含文件的文件夹
- JAVA实现反向连接_____屏幕监视 (TCP)
- Binary Tree Maximum Path Sum
- STM8S---定时器产生PWM(TIM2)
- JAVA颜色代码
- Flex4如何给swf传参数
- 【分享】androidpn 作为Android推送方案存在的问题
- start_kernel——setup_nr_cpu_ids
- 计算器小例子
- 【单调栈】POJ 2559 Largest Rectangle in a Histogram
- Linux系统调用列表
- 87.计算n!