STM8 开发故事--之蜂鸣器 BEEP设计更好的解决方案(二)。
上一节,讲到stm8l152的beep引脚因为与swim共享,造成开发和生产都不方便。有没有其他解决方案那,肯定有。
1.换mcu。
2.换另一个引脚。用有源蜂鸣器。这设计软件简单,但是电路复杂。
3.换另一个引脚,用pwm驱动。可以直接驱动无缘蜂鸣器。
我当然选择第3个方案。用stm8的定时器1 timer1做信号源。代码如下。
这段程序是用IAR库编写的
void Time1_Init(void)//输出PD5 timer1初始化的库函数模式
{
// PD_DDR_DDR5 =0;// 设置为输出 GPIO设置有人说必须要我没用也行
// PD_CR1_C15 =1;//推挽输出
CLK_PeripheralClockConfig(CLK_Peripheral_TIM1,ENABLE);//开启TIM1时钟
TIM1_DeInit();
TIM1_TimeBaseInit(2,TIM1_CounterMode_Up,240,0); //分频1600,向上计数,频率240,重复计数器为0
TIM1_OC3Init(TIM1_OCMode_PWM2,//PWM1模式2
TIM1_OutputState_Enable,//启用互补输出比较
TIM1_OutputNState_Disable,
50,//脉冲宽度初值是1000
TIM1_OC

本文讲述了在STM8开发中遇到的蜂鸣器BEEP问题,提出使用PWM通过定时器1来驱动蜂鸣器的第三种方案。通过代码展示了如何初始化定时器1并设置PWM模式,以直接驱动无源蜂鸣器。此外,还讨论了PWM驱动蜂鸣器的优势,如可以调整频率来播放音乐,并预告了后续将利用STM8的定时中断功能演奏多和弦音乐。
最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



