新聞中心
聯(lián)系我們
行業(yè)資訊
運(yùn)行這串代碼,無源蜂鳴器會一直響的原因
如果你的原理圖,是用NPN三極管驅(qū)動發(fā)聲,如下圖(實(shí)際原理圖可能比這個復(fù)雜,這里只考慮邏輯)(通常情況下不會用IO口直接帶負(fù)載,因?yàn)镮O口電流太小難以驅(qū)動)在這種情況下,如果BEEP置1,發(fā)射極和基極的PN結(jié)會導(dǎo)通,驅(qū)動發(fā)聲。同樣如果BEEP置0,該P(yáng)N結(jié)就截止,將不會發(fā)聲。也就是說驅(qū)動的IO口為1就響,為0就不響。那么題主的代碼就很好理解了,在沒有while(1)的循環(huán)狀態(tài)下,該代碼按順序只會執(zhí)行一次。
也就是最終BEEP的狀態(tài)會停留在置1的狀態(tài),所以在短暫置0的1000微秒后,BEEP的狀態(tài)會一直是1,而1000微秒的時間是遠(yuǎn)遠(yuǎn)小于人類可以辨識的時間間隔的。所以直觀感受就是一直響。簡單來說,如果接線的邏輯是IO高電平響,低電平不響,那這段代碼就會使之一直響的。
更多文章,請點(diǎn)擊http://m.elevatorpitchthemovie.com/