OpenHarmony輕量系統(tǒng)—潤和hi3861UART接口GPS定位模塊ATGM336H-5N 開發(fā)
想了解更多關(guān)于開源的內(nèi)容,請(qǐng)?jiān)L問:
筆者最近用潤和HiHope hi3861智能家居開發(fā)套件連接了GPS定位模塊ATGM336H-5N,實(shí)現(xiàn)了輸出經(jīng)緯度位置信息,以此篇文章分享學(xué)習(xí)經(jīng)驗(yàn),并且開放源碼供大家參考學(xué)習(xí)。
https://gitee.com/from-north-to-north/HiHopePegasus_3861_GPS。
樣例運(yùn)行的OpenHarmony源碼環(huán)境下載:https://gitee.com/HiSpark/hi3861_hdu_iot_application
通過本文您將了解:
- HiHopePegasus 3861 RISC-V芯片 UART通信接口的基礎(chǔ)使用。
- GPS定位模塊ATGM336H-5N的使用、與3861的接線方式。
- HiHopePegasus 3861通過UART通信接口與GPS定位模塊ATGM336H-5N連接后輸出的GPS數(shù)據(jù)的解析。
目錄
- hi3861 UART通信接口
- 3861 UART通信接口的基礎(chǔ)使用
- GPS定位模塊ATGM336H-5N 通過UART接口 與3861通信
1、hi3861 UART通信接口
通用異步收發(fā)器UART(Universal Asynchronous Receiver Transmitter)是一個(gè)異步
串行的通信接口,主要功能是和外部芯片的UART進(jìn)行對(duì)接,從而實(shí)現(xiàn)兩芯片間的通
信。hi3861芯片提供3個(gè)UART單元。
樣例運(yùn)行的OpenHarmony源碼環(huán)境中uart接口有關(guān)的頭文件
- hi_uart.h
- iot_uart.h
注意事項(xiàng):
- SDK中,UART1默認(rèn)用作AT命令通道,復(fù)用GPIO5/6 為UART的TX、RX功能。
- SDK中,UART0默認(rèn)用作程序燒寫和維測(cè)數(shù)據(jù)通道,復(fù)用GPIO3/4 為UART的TX、RX功能,用戶如果使用UART0作為其他功能,可屏蔽app_main中的hi_diag_init函數(shù)。
- UART0不支持硬件流控功能。
- hi_uart_lp_restore接口與hi_uart_lp_save接口用于深睡喚醒與睡眠流程中,以保證喚醒后UART能夠恢復(fù)睡前配置。
2、3861 UART通信接口的基礎(chǔ)使用
筆者通過海思寫的uart_demo進(jìn)行學(xué)習(xí),但是此樣例并沒有提供readme。
該demo需要一個(gè)USB轉(zhuǎn)TTL板,它大概長下面這樣。
3861核心板和USB轉(zhuǎn)TTL板的連接。
用杜邦線將3861核心板GPIO1和USB轉(zhuǎn)TTL板的TXD連接,GPIO0和USB轉(zhuǎn)TTL板的RXD連接。
燒錄uart_demo至3861運(yùn)行,使用串口工具打開兩個(gè)串口。
運(yùn)行效果:左邊3861的串口可以收到右邊串口發(fā)的信息,右邊一直收到左邊發(fā)來的信息。并且ttl轉(zhuǎn)usb板上有一個(gè)小燈一直在閃動(dòng)。
3、GPS定位模塊ATGM336H-5N 通過UART接口 與3861通信
熟悉完3861 UART通信接口的基礎(chǔ)使用后就可以進(jìn)行GPS定位模塊ATGM336H-5N的開發(fā)了。核心板與GPS模塊接線方式如下:
- GPS模塊VCC 接 3861核心板5v供電
- GPS模塊GND 接 3861核心板GND
- GPS模塊TX 接 3861核心板GPIO1
- GPS模塊RX 接 3861核心板GPIO0
demo倉庫地址:3861 GPS定位模塊開發(fā)。
main.c程序的大概邏輯如下(值得注意的是GPS輸出的是WGS-84坐標(biāo)系的經(jīng)緯度,而不是GCJ-02坐標(biāo)系下的經(jīng)緯度。因此輸出數(shù)據(jù)會(huì)有偏差)。
最后程序運(yùn)行效果如下:串口輸出mm.mmmm格式的經(jīng)緯度坐標(biāo)(WGS-84坐標(biāo)系)。