STM8 开发故事--之蜂鸣器 BEEP设计更好的解决方案(二)

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

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_OCPolarity_Low,
               TIM1_OCNPolarity_Low,
               TIM1_OCIdleState_Set,
       

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值