CH438 接收一次后中斷引腳始終為低電平,無(wú)法再次產(chǎn)生中斷

做項(xiàng)目中發(fā)現(xiàn),CH438芯片第一次接收到數(shù)據(jù)后,無(wú)論數(shù)據(jù)是什么,總是收到一串0x01的字符,且中斷引腳拉低后無(wú)法再次自動(dòng)拉高,MCU也無(wú)法強(qiáng)制拉高,無(wú)法產(chǎn)生第二次中斷。目前只開(kāi)了接收中斷和接收線路錯(cuò)誤中斷,第一次中斷沒(méi)有進(jìn)入線路錯(cuò)誤中斷,關(guān)閉線路錯(cuò)誤中斷現(xiàn)象不變。

請(qǐng)問(wèn)下這是什么原因?

補(bǔ)充:接收到第一次中斷后,讀取SSR寄存器,結(jié)果為0x01,因?yàn)槭谴?輸入數(shù)據(jù),讀串口1的IIR寄存器結(jié)果為0X0C,進(jìn)入接收超時(shí)中斷,因?yàn)榘l(fā)送數(shù)據(jù)沒(méi)有超過(guò)112字節(jié)。之后在主循環(huán)中不斷讀取SSR寄存器,發(fā)現(xiàn)SSR寄存器始終為0x01,無(wú)法清除中斷,強(qiáng)制向SSR寄存器寫(xiě)入0x00后,SSR寄存器依舊為0x01.


補(bǔ)充:接收兩次后讀IIR寄存器,為0x04,數(shù)據(jù)可用中斷,在主循環(huán)中不斷讀取RBR寄存器,讀出來(lái)的值始終為0x01,無(wú)法通過(guò)讀取RBR寄存器清除IIR寄存器的中斷。初步懷疑是RBR寄存器中不斷產(chǎn)生0x01的數(shù)據(jù)導(dǎo)致FIFO溢出,一直產(chǎn)生中斷,導(dǎo)致INT引腳無(wú)法拉高。

所以這個(gè)問(wèn)題怎么解決啊


您好,您是否將438的INT腳用于外部中斷函數(shù)觸發(fā),并且為下降沿觸發(fā)?

如果是,您可以在進(jìn)中斷后處理服務(wù)函數(shù)前加一句INT腳的低電平判斷,

因?yàn)槲覀兊闹袛嗄_是低電平有效,當(dāng)有連續(xù) 的數(shù)據(jù)進(jìn)來(lái)時(shí),會(huì)一直觸發(fā)中斷,此時(shí)INT腳一直為低,主控的外部中斷服務(wù)函數(shù)如果請(qǐng)了中斷標(biāo)志位,此時(shí)沒(méi)有下降沿 ,會(huì)導(dǎo)致無(wú)法再進(jìn)中斷服務(wù)函數(shù),從而無(wú)法取走數(shù)據(jù),無(wú)法拉高INT,導(dǎo)致一直為低

while(INT? == 0)

{

處理438接收數(shù)據(jù)

}


謝謝回答,問(wèn)題已解決!不過(guò)最后發(fā)現(xiàn)問(wèn)題是出在更改波特率以后,忘記將LCR寄存器的DLAB位置零,導(dǎo)致無(wú)法讀取RBR寄存器,無(wú)法取出FIFO中的數(shù)據(jù)。


只有登錄才能回復(fù),可以選擇微信賬號(hào)登錄

国产91精品新入口,国产成人综合网在线播放,九热这里只有精品,本道在线观看,美女视频a美女视频,韩国美女激情视频,日本美女pvp视频