STM8 开发故事--之蜂鸣器 BEEP设计坑爹的引脚(一)

STM8 开发故事--之蜂鸣器 BEEP设计坑爹的引脚

为什么选stm?

最近才又开始搞stm8开发。虽然以前从来没用过stm的产品,但是stm在嵌入界鼎鼎大名可是早有耳闻。据某IC供应商提供的数据当今(2019年)56%的MCU都是stm的。要说为什么这么火,最直接的原因:便宜而且功能强大。淘宝上stm8s的最小系统板才1块多RMB。

因为要要开发的产品要用液晶显示数字,而且是用电池供电。所以选择了stm8L052c6t6。有朋友推荐我用华大的HC32L136。本想支持国行的,但是供应商不跟进就涮了,还有一个原因又怕资料太少,还是暂时放弃了。我以前做过51的项目,同样的51atmel的质量就好过华邦,华邦掉程序的概率要高很多。这也是我选stm的原因。于是在tb买了一块带液晶显示的stm8l152c6t6的评估板。就开干了。所有元器件都来至淘宝。由于公司小,我也不爱吹牛,有几十百八万的产量。供应商都不爱送样。即便送样也要我支付邮费。东莞某蜂鸣器厂送2个蜂鸣器我付了18元的邮费。关键送的元件还不是我申请的型号。后来又寄了一次来,邮费到付。我直接拒收了。最后在万能的淘宝买齐元件。

下图就是我用的蜂鸣器。

 

STM8 开发故事--之蜂鸣器 BEEP设计坑爹的引脚(一)_第1张图片

 

STM8 开发故事--之蜂鸣器 BEEP设计坑爹的引脚(一)_第2张图片

 

下图是送样的贴片蜂鸣器。不是我要的,也没做测试。

STM8 开发故事--之蜂鸣器 BEEP设计坑爹的引脚(一)_第3张图片

 

现在继续谈蜂鸣器的设计。蜂鸣器分有源和无源2种。由于stm8l152本身带有一个beep引脚。所以我选无源的。但是152这设计坑爹呀。beep和编程用的swim同一个引脚。我选用的是无源蜂鸣器直接接电源和单片机,引脚见下图。

 

STM8 开发故事--之蜂鸣器 BEEP设计坑爹的引脚(一)_第4张图片

 

但是接入蜂鸣器后,蜂鸣器拉高了swim的电位,造成无法编程和下载。编程时需要断开蜂鸣器,编程完成后再断开swim,接通蜂鸣器就可以工作了。我在TB上买了2个阻抗的蜂鸣器,12欧和42欧的。42欧的比12欧的声音更大一些。beep引脚可以按1K,2K,4Khz输出方波。通过测试42欧的蜂鸣器在2khz时声音最大。下面是代码。

void BeepInit()

{

CLK_PeripheralClockConfig(CLK_Peripheral_BEEP,ENABLE);//打开时钟

CLK_BEEPClockConfig(CLK_BEEPCLKSource_LSI);//选择内部时钟

BEEP_Init(BEEP_Frequency_2KHz);//设定beep输出频率2khz

BEEP_Cmd(ENABLE);//蜂鸣器打开

// BEEP_Cmd(DISABLE);//蜂鸣器关闭

}

void main( void )

{

BeepInit();

BEEP_Cmd(ENABLE);//蜂鸣器打开

while(1 ){}

}

这种设计很恼火:下载程序必须断开蜂鸣器,下载完了再接上。开发时候就够麻烦了。如果量产也多这2道工序,那不给老板骂死。设计必须改。要知道怎么解决,请听下回分解。

未完待续。。。。。

 

 

 

你可能感兴趣的:(嵌入式)