单片机蜂鸣器问题,独立程序正常响,加上串口发送程序就不怎么响了,当去掉注释部分之后蜂鸣器正常响,加上之后就不响了,求解答!!!!
单片机源程序如下:
if(HW == 1&&led_flag==0)
{
delay(5);
beep = ~beep;
delay(5);
// ms_delay(1000) ;
// send_str(“AT+CIPSEND=0,10\r\n”);
// ms_delay(1000) ;
// send_str(“warning!!!\r\n”);
}
,目的就是让蜂鸣器响完之后串口发送数据出去,改了各种延时都一样呀,串口助手能正常收到发出的字符串,用我这个贴子的串口发送代码 不要while 死等 www.073107.com/bbs/dpj-200927-1.html,你这是用的无源蜂鸣器吧?串口占了绝大部分的时间,蜂鸣器工作的时间极短,你肯定听不到响了。
简单解决的办法是换用有源蜂鸣器,需要鸣响时打开,到串口发送完毕再关闭,可以在delay(5)后面加空操作。比如
for(t=0;t<5000;t++){},也许串口进程占用了大多数时间。 应该使用串口中断。