OpenHarmony开发者论坛
标题:
润和hi3861UART接口GPS定位模块ATGM336H-5N 开发
[打印本页]
作者:
离北况归
时间:
2023-10-17 15:35
标题:
润和hi3861UART接口GPS定位模块ATGM336H-5N 开发
[md]- 笔者最近用润和HiHope hi3861智能家居开发套件连接了GPS定位模块ATGM336H-5N,实现了输出经纬度位置信息,以此篇文章分享学习经验,并且开放源码供大家参考学习。
-
https://gitee.com/from-north-to-north/HiHopePegasus_3861_GPS
- 样例运行的OpenHarmony源码环境下载:
https://gitee.com/HiSpark/hi3861_hdu_iot_application
- 往期回顾:[[OpenHarmony轻量系统①]润和HiHope 3861实现UDP广播温湿度](
https://ost.51cto.com/posts/23282
)
---
- 通过本文您将了解:
1、HiHopePegasus 3861 RISC-V芯片 UART通信接口的基础使用
2、GPS定位模块ATGM336H-5N的使用、与3861的接线方式。
3、`HiHopePegasus 3861`通过`UART通信接口`与`GPS定位模块ATGM336H-5N`连接后输出的GPS数据的解析
## 1、hi3861 UART通信接口
- 通用异步收发器UART(Universal Asynchronous Receiver Transmitter)是一个异步
串行的通信接口,主要功能是和外部芯片的UART进行对接,从而实现两芯片间的通
信。hi3861芯片提供3个UART单元。
- [样例运行的OpenHarmony源码环境](
https://gitee.com/HiSpark/hi3861_hdu_iot_application
)中uart接口有关的头文件
- [hi_uart.h](
https://gitee.com/HiSpark/hi3861 ... s/include/hi_uart.h
)
- [iot_uart.h](
https://gitee.com/HiSpark/hi3861 ... ces/kits/iot_uart.h
)
- 注意事项:
- SDK中,UART1默认用作AT命令通道,复用GPIO5/6 为UART的TX、RX功能。
- SDK中,UART0默认用作程序烧写和维测数据通道,复用GPIO3/4 为UART的
TX、RX功能,用户如果使用UART0作为其他功能,可屏蔽app_main中的
hi_diag_init函数。
- UART0不支持硬件流控功能。
hi_uart_lp_restore接口与hi_uart_lp_save接口用于深睡唤醒与睡眠流程中,以保
证唤醒后UART能够恢复睡前配置。
## 2、3861 UART通信接口的基础使用
- 笔者通过海思写的[uart_demo](
https://gitee.com/HiSpark/hi3861 ... asus/demo/uart_demo
)进行学习,但是此样例并没有提供readme。
- 该demo需要一个`USB转TTL板`,它大概长下面这样。
![6a8ab7359eca6c96e3c49715943885d.jpg](
https://dl-harmonyos.51cto.com/i ... rocess=image/resize
,w_820,h_618)
- 3861核心板和USB转TTL板的连接
用杜邦线将3861核心板GPIO1和USB转TTL板的TXD连接,GPIO0和USB转TTL板的RXD连接
![image.png](
https://dl-harmonyos.51cto.com/i ... rocess=image/resize
,w_787,h_903)
- 烧录[uart_demo](
https://gitee.com/HiSpark/hi3861 ... asus/demo/uart_demo
)至3861运行,使用[串口工具](
https://gitee.com/from-north-to- ... %B7/sscom5.13.1.exe
)打开两个串口
![image.png](
https://dl-harmonyos.51cto.com/i ... rocess=image/resize
,w_820,h_685)
- 运行效果:左边3861的串口可以收到右边串口发的信息,右边一直收到左边发来的信息。并且ttl转usb板上有一个小灯一直在闪动。
![5345.png](
https://dl-harmonyos.51cto.com/i ... rocess=image/resize
,w_820,h_935)
## 3、GPS定位模块ATGM336H-5N 通过UART接口 与3861通信
- 熟悉完3861 UART通信接口的基础使用后就可以进行GPS定位模块ATGM336H-5N的开发了。核心板与GPS模块接线方式如下:
- GPS模块VCC 接 3861核心板5v供电
- GPS模块GND 接 3861核心板GND
- GPS模块TX 接 3861核心板GPIO1
- GPS模块RX 接 3861核心板GPIO0
![1007ef7b6eb172cde2b3d5e9fd880b0.jpg](
https://dl-harmonyos.51cto.com/i ... rocess=image/resize
,w_820,h_1420)
- demo仓库地址:[3861 GPS定位模块开发](
https://gitee.com/from-north-to-north/HiHopePegasus_3861_GPS
)
![image.png](
https://dl-harmonyos.51cto.com/i ... rocess=image/resize
,w_354,h_174)
- main.c程序的大概逻辑如下(值得注意的是GPS输出的是WGS-84坐标系的经纬度,而不是GCJ-02坐标系下的经纬度。因此输出数据会有偏差)
![image.png](
https://dl-harmonyos.51cto.com/i ... rocess=image/resize
,w_520,h_448)
- 最后程序运行效果如下:串口输出mm.mmmm格式的经纬度坐标(WGS-84坐标系)
![image.png](
https://dl-harmonyos.51cto.com/i ... rocess=image/resize
,w_820,h_561)
[/md]
欢迎光临 OpenHarmony开发者论坛 (https://forums.openharmony.cn/)
Powered by Discuz! X3.5