單片機
GPRS模塊向串口助手(或者單片機)發(fā)送數(shù)據(jù)時9600波特率,1、若為同一包數(shù)據(jù),每個字符之間間隔多長時間。2、2包數(shù)據(jù)間最少間隔時間多長
即:我該如何判斷單片機已接受GPRS發(fā)送的一包/幀完整數(shù)據(jù)?
想了兩種方法:一個是判斷包頭包尾,比如GPRS一般應(yīng)答時先發(fā)送2個“\r\n”,包尾發(fā)送一個“\r\n”.但是有的不是,不好做到統(tǒng)一。另一種方法是通過時間間隔:比如當(dāng)接受的一個字符時,打開計數(shù)器開始計時(定時器中斷已使能,假設(shè)50ms中斷一次),每次進串口接受中斷則將計數(shù)器清零,這樣若同一包數(shù)據(jù)是連續(xù)的數(shù)據(jù)流,則不會進入定時器中斷。當(dāng)間隔50ms還沒有接收到數(shù)據(jù)則會進入定時器中斷,一旦進入定時器中斷則認(rèn)為一包數(shù)據(jù)接收完畢,設(shè)置完成標(biāo)志位。 這樣的好處是能夠統(tǒng)一,且都在中斷里處理,無需應(yīng)用層程序。但問題是上面的兩個問題,即時間間隔問題!
看英文文檔看的頭疼也沒找到相關(guān)的,求指導(dǎo)。 新號分不多,