您现在的位置: 主页 > MCU > 单片机技术应用 > STM8S---定时器产生PWM(TIM2) -
本文所属标签:
为本文创立个标签吧:

STM8S---定时器产生PWM(TIM2) -

来源: 网络用户发布,如有版权联系网管删除 2018-09-07 

[导读]
1 说明采用STM8S内部时钟(HSI);PWM模式2;占空比为50%,频率为2Hz(方便测试LED灯);PD2口外接LED灯,PD2口输出PWM波;系统时钟初始化很重要:CLK_CKDIVR|=0x08;2 代码/*TIM2_CH3 PWMPD2 output*/#inc

1 说明
  • 采用STM8S内部时钟(HSI);

    本文引用地址: http://www.21ic.com/app/mcu/201806/764792.htm

  • PWM模式2;

  • 占空比为50%,频率为2Hz(方便测试LED灯);

  • PD2口外接LED灯,PD2口输出PWM波;

  • 系统时钟初始化很重要:CLK_CKDIVR|=0x08;

2 代码


/*

TIM2_CH3 PWM

PD2 output

*/

#include


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);

}




              查看评论 回复



嵌入式交流网主页 > MCU > 单片机技术应用 > STM8S---定时器产生PWM(TIM2) -
 

"STM8S---定时器产生PWM(TIM2) -"的相关文章

网站地图

围观()