標(biāo)題: 51單片機串口接收字符的程序,interrupt4里面識別接收到GPRMC這一幀 [打印本頁]

作者: 酒家魯智深    時間: 2022-4-12 11:38
標(biāo)題: 51單片機串口接收字符的程序,interrupt4里面識別接收到GPRMC這一幀
有大佬可以幫一下嗎
最近一直在做51單片機串口接收字符的程序,就是在interrupt4里面,正確識別接收到GPRMC這一幀,然后把GPRMC整幀存進一個數(shù)組,已經(jīng)搞了十多天了,總是識別不到

作者: Y_G_G    時間: 2022-4-12 16:16
GPS時鐘?
如果是的話,這并不難,但不能著急,一步一步來,不要一下寫完整個程序,然后就試
一個一個函數(shù)的去燒錄驗證,別仿真,浪費時間,燒錄才是王道
串口一定要設(shè)置正確,并用電腦檢測,不然后面全白費這個是我剛開始學(xué)C語言的時候?qū)懙?你參考一下,代碼比較弱智,但是,是驗證通過的,我?guī)讉GPS時鐘用的都是這個代碼,反正一直沒錯過,所以,也就懶得去優(yōu)化代碼了
uart.rar (1.87 KB, 下載次數(shù): 24)


作者: 飛云居士    時間: 2022-4-12 17:29
串口中斷里,每次只能讀一個字符(一個字節(jié)的數(shù)據(jù))。一般是把這個字符存入一個緩沖池,主程序再從緩存池里把幀數(shù)據(jù)送你說的數(shù)組里
作者: zhxiufan    時間: 2022-4-12 18:40
你可以先用串口助手發(fā)送正常的字符串,看看能否識別,這樣可以排除是否數(shù)據(jù)問題。
作者: 酒家魯智深    時間: 2022-4-14 10:22
Y_G_G 發(fā)表于 2022-4-12 16:16
GPS時鐘?
如果是的話,這并不難,但不能著急,一步一步來,不要一下寫完整個程序,然后就試
一個一個函數(shù)的去 ...

萬分感謝,但是我發(fā)送四五幀已經(jīng)成功能夠提取出gprmc這一幀了,但只有前半幀,后半幀就亂碼了,怎么辦
作者: 天ノ憶    時間: 2022-4-14 11:38
酒家魯智深 發(fā)表于 2022-4-14 10:22
萬分感謝,但是我發(fā)送四五幀已經(jīng)成功能夠提取出gprmc這一幀了,但只有前半幀,后半幀就亂碼了,怎么辦

最好的辦法就是連示波器看波形
作者: Y_G_G    時間: 2022-4-14 12:47
酒家魯智深 發(fā)表于 2022-4-14 10:22
萬分感謝,但是我發(fā)送四五幀已經(jīng)成功能夠提取出gprmc這一幀了,但只有前半幀,后半幀就亂碼了,怎么辦

你要先理解這個思路,代碼你不能就是復(fù)制別人的就得了
1,先給GPRMC準(zhǔn)備一個數(shù)組,一個長度大于GPRMC ASCII數(shù)據(jù)個數(shù)的數(shù)組
2,串口中斷檢測到"GNRMC"這幾個字符之后,才會再開始保存接下來接收到的數(shù)據(jù),也不一定是要完全得是GNRMC,因為在所有的數(shù)據(jù)中,只要用G R C就可以區(qū)分于其它數(shù)據(jù)了
3,接收到GNRMC所有數(shù)據(jù),或者是接收的數(shù)據(jù)個數(shù)大于設(shè)定的個數(shù)之后,就不再接收了,因為GPS模塊是會一直發(fā)送數(shù)據(jù)的
4,接收到有數(shù)據(jù),保存在數(shù)組中,然后就去讀取數(shù)組中的數(shù)據(jù)就行了,可以用   ......[56]這種的直接讀取,不用像我代碼中那樣++的,那是我當(dāng)時為了測試才用的,因為沒有問題,所以就沒有去優(yōu)化了
5,可以用串口助手發(fā)送自己類似于"$GNRMC,111111.222,A,3333.4444,N,11408.4790,E,0.53,292.44,141216,,,A*7
5"這樣的,自己設(shè)定有數(shù)據(jù),再顯示出來,自己就可以從中查找出問題來
作者: 酒家魯智深    時間: 2022-4-20 00:15
Y_G_G 發(fā)表于 2022-4-14 12:47
你要先理解這個思路,代碼你不能就是復(fù)制別人的就得了
1,先給GPRMC準(zhǔn)備一個數(shù)組,一個長度大于GPRMC ASCII ...

你好,我想問一下,我的GPS接到電腦就可以收發(fā)字符串,單片機接電腦也可以收發(fā),但是為什么單片機和GPS連接不行呢?我的波特率是9600,謝謝
作者: Y_G_G    時間: 2022-4-20 17:29
酒家魯智深 發(fā)表于 2022-4-20 00:15
你好,我想問一下,我的GPS接到電腦就可以收發(fā)字符串,單片機接電腦也可以收發(fā),但是為什么單片機和GPS連 ...

不知道,東西不在手上,也沒有你的代碼,猜不出來
作者: zhxiufan    時間: 2022-4-20 18:08
LED2=LED3;





歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1