单片机蜂鸣器问题,独立程序正常响,加上串口发送程序就不怎么响了

单片机蜂鸣器问题,独立程序正常响,加上串口发送程序就不怎么响了,当去掉注释部分之后蜂鸣器正常响,加上之后就不响了,求解答!!!!      …

单片机蜂鸣器问题,独立程序正常响,加上串口发送程序就不怎么响了,当去掉注释部分之后蜂鸣器正常响,加上之后就不响了,求解答!!!!                        
单片机源程序如下:
                           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++){},也许串口进程占用了大多数时间。 应该使用串口中断。

作者: soufei

为您推荐


Fatal error: Can't use function return value in write context in /www/wwwroot/www.qianrushi.com.cn/wp-content/themes/news/footer.php on line 115