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

STM8L101 TIM2 PWM1模式 使用

发布时间:2021-06-11 发布时间:
|

使用STM8L101F3P6

驱动蜂鸣器:滴滴 两下,然后关闭3s. 关键程序如下:

void main(void)

{

GPIO_Init(BUZZER_GPIO_PORT,BUZZER_GPIO_PINS,GPIO_Mode_Out_PP_Low_Slow);//PB2 TIM2_CH2

CLK_PeripheralClockConfig (CLK_Peripheral_TIM2,ENABLE); //使能外设时钟,STM8L外设时钟默认关闭,使用前需使能
TIM2_DeInit();
//TIM2_TimeBaseInit(TIM2_Prescaler_128, 0xff);//16M/8/128=15.625K,0xff=255,255*(1/15.625)=0.01632S,大约61次中断是1S
TIM2_TimeBaseInit(TIM2_Prescaler_1,TIM2_CounterMode_Up,999);//16M/8/1=2M,0xff=255,255*(1/15.625)=0.01632S,大约61次中断是1S 2KHz
TIM2_OC2Init(TIM2_OCMode_PWM1,
TIM2_OutputState_Enable,
500,
TIM2_OCPolarity_High,
TIM2_OCIdleState_Set);
TIM2_OC2PreloadConfig(ENABLE);

}

void music (void)
{
TIM2_CtrlPWMOutputs(ENABLE);
Delayms(100);
TIM2_CtrlPWMOutputs(DISABLE);
Delayms(100);
TIM2_CtrlPWMOutputs(ENABLE);
Delayms(100);
TIM2_CtrlPWMOutputs(DISABLE);
DelayS(3);
}

//延时微妙
void Delayus(void)
{
asm("nop");
// asm("nop");
// asm("nop");
// asm("nop");
}
//延时毫秒
void Delayms(unsigned int time)
{
unsigned int i;
while(time--){
// for(i=900;i>0;i--)
for(i=100;i>0;i--)
{
Delayus();

}
}
}
//秒延时
void DelayS(unsigned int time)
{
while(time--)
{
Delayms(1000);
}
}



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

热门文章 更多
哈德智能HUD亮相CES 京东众筹车联神器