问题出在蜂鸣器的驱动电路上。蜂鸣器用的便是5V的有源电磁蜂鸣器,给电就响。在设计中合营按键和报警输出利用。便是如下图中的蜂鸣器。
有源蜂鸣器
他设计的驱动电路是用三极管实现的,单片机的GPIO口掌握三极管的基极,电路图如下:

蜂鸣器在NPN三极管发射极电路
我认为他设计的这个电路是存在问题的,可能存在三极管无法饱和输出的问题,由于三极管是要产生压降的。
假设GPIO口输出的是5V电压,三极管BE压降0.7V,蜂鸣器压降为U1,则基极电流Ib:
Ib=(5-0.7-U1)/R48, 从打算公式中可以看出,基极电流除了受R48影响之外,还受蜂鸣器的压降影响。如果压降较大,则可能三极管不能事情在饱和状态,从而导致蜂鸣器不发声。我建议电路图按照如下的办法修正:
蜂鸣器在NPN三极管集电极电路
这样基极的电流就只受R50影响,这样是可控的,从而能担保三极监工作在饱和状态,成功驱动蜂鸣器发声。
实在电路的稳定性与否每每是细节部分决定的,一样平常整体的方案不会存在比较大的问题。产品纵然在难做,但是功能一样平常都能实现,困难的地方是把产品做稳定,只管即便少BUG。
以上这个剖析和大家分享,大概你认为我是错的,也欢迎大家提出不同的见地。