原创 Air724UG软件指南:UART示例(上篇)

2025-1-25 17:29 69 0 分类: 通信

Air724UG作为一款高性价比的4G模组,无疑是物联网项目开发的理想选择。下文我们成功展示了如何利用Air724UG模组的UART接口进行基本的网络通信操作。希望今天的分享对你有所帮助。


一、串口(uart)概述


UART(通用异步接收器/发送器)是一种串行通信协议,因其多功能性和简单性而被广泛使用。与 I2C 和 SPI 不同,UART 只需要两条线即可运行:TX(发送)和 RX(接收)。该协议允许异步通信,也就是说发送器和接收器之间无需共享时钟。数据被组织成数据包,每个数据包包含一个起始位、5 到 9 个数据位、一个可选的奇偶校验位和1个、2个或者1.5个停止位。


优点:

简单:UART 通信协议相对简单,易于实现和调试。

适用性广泛:UART 被广泛应用于各种设备之间的通信,具有较好的兼容性。

距离:UART 通信距离较远,适用于需要长距离传输的场景。


缺点:

速度较低:UART 通信速度相对较低,不适用于对速度要求较高的应用。

双工:UART 通信是双工的,可以进行低速双工传输数据,进行数据的发送和接收。

不可靠:由于 UART 是异步通信,可能会受到噪声和干扰的影响,导致数据传输不可靠。


二、演示功能概述


本文主要教你使用 Air724UG 开发板对串口(uart)进行一个测试,其中包含了串口,RS485,usb 虚拟串口,多串口,串口电平转换等内容,其中对 RS485 有一个搭配温湿度传感器做的一个温湿度传感器 demo


三、准备硬件环境


3.1 开发板准备


在开始之前,需要准备一套 Air724UG 开发板,目前推出两种 Air724UG 开发板(开发板和核心板),开发板的优势在于大多数管脚接口都引出来了,例如 sd 卡,camera,屏幕等接口,实际使用都是一样的,在使用时可根据自身需求选择开发板。


1)如果你选择的是Air724UG开发板:


此开发板的详细使用说明参考:

https://docs.openluat.com/air724ug/product/

Air724UG产品手册中的 《EVB_Air724UG_AXX开发板使用说明》,写这篇文章时最新版本的使用说明为:《EVB_Air724UG_A14开发板使用说明》;开发板使用过程中遇到任何问题,可以直接参考这份使用说明文档。


2)如果你选择的是Air724UG核心板:


下方资料可供你参考查阅:

https://docs.openluat.com/air724ug/product/

Air724UG产品手册中的Air724UG-核心板硬件资料


3.2 SIM 卡

在中国大陆环境下,使用移动,电信,联通的物联网卡或者手机卡都可以。


3.3 数据通信线


1)USB 数据线

2)由于本篇教程和串口相关,所以需要准备 USB 转 TTL 工具或者串口线。例如 CH340、FT232 等,本文使用的是高速串口


3.4 PC 电脑

PC 电脑推荐使用 win7 及以上版本,Air724UG 驱动下载地址:

8910驱动:

https://doc.openluat.com/wiki/21?wiki_page_id=6908


3.5 介绍串口如何接线

Air724UG 模组有 5 个串口,分别为 UART1,UART2,UART3,HOST UART 和 ZSP UART 调试串口。

其中对于 Luat 开发方式,UART1 可以用作一个通用的串口来连接其他的串口设备。

UART2 可以用来射频校准,同时 UART2 还用来和内部的蓝牙进行通讯,如果用到了蓝牙功能,则 UART2 不可 再用作其他用途。

UART3 是一个通用串口,可以用作外接 GPS 等外设。

HOST UART 用来软件调试时输出 AP trace。

ZSP UART 用来软件调试时输出 CP trace。

其中 HOST UART 和 ZSP UART 不能作为普通串口使用,只用于调试输出底层日志。


1)如果你想了解这 5 个串口对应于模组的哪个管脚,请看下方图片:


2)如果你只想知道 Air724UG 开发板的串口引出位置,请看下方图片:


3)接下来进行接线操作,注意模块与 MCU 之间要交叉接线,即 TX 接 RX,RX 接 TX,GND 接 GND 。由于本文只需用到 UART1 和 UART2 两个通用串口,因此下表中只列出了这两个通用串口的模块引脚编号及模块与 MCU 之间接线说明。


四、准备软件环境


4.1 源码及工具


Air724UG模块使用固件:

固件地址:

https://docs.openluat.com/air724ug/luatos/firmware/

选择最新版本CORE_V4030,本文使用的固件版本是:LuatOS-Air_V4030_RDA8910_BT_FLOAT.pac

将固件和脚本烧录到模块中,使用说明参考:

Luatools 下载和详细使用

https://docs.openluat.com/Luatools/

串口工具本文选用的是 sscom


4.2 uart 库接口描述

uart 库即串口操作库,该库为内部库,所以在程序中使用时无需 require 调用,本文只是简单介绍 uart 库中常用接口描述,其余接口描述请参考:uart 接口文档


4.2.1 配置串口参数



4.2.2 写串口


4.2.3 读串口


4.2.4 关闭串口


4.2.5 注册串口事件回调


4.2.6 485 转向控制


4.2.7 从串口读取单字符


4.3 初始化 uart


使用 UART1 串口

使用 UART2 串口


4.4 注册接收数据的回调函数


uart.on 函数用于注册一个接收事件的回调函数,当指定的串口 UART_ID 接收到数据时,该回调函数会被自动触发并执行。回调函数通过 uart.on(UART_ID, "receive", read) 定义,并处理接收到的数据。数据的读取是通过 uart.read() 函数进行的,uart.read() 函数是非阻塞的,它是直接从现有缓存区中直接读取数据。


4.5 发送数据


本文中字符串编码格式为 UTF-8 编码格式,SSCOM 串口调试工具的编码格式为 GB2312,所以导致无法正确显示字符串中的中文,需要注意。


4.5.1 发送普通字符串


4.5.2 发送十六进制的数据串


4.5.3 发送 json 格式的数据



4.6 完整例程


代码运行结果:

uart.write(UART_ID, common.utf8ToGb2312("合宙模块Air724UG")) 向串口发送对应的字符串数据,uart.on() 会事先注册一个接收数据的回调函数,当指定的串口 UART_ID 接收到数据时,该回调函数会被自动触发并执行,log.info("testUart.read bin",data) log.info("testUart.read hex",data:toHex()) 会将接收到的数据打印出来,此时我们通过串口调试工具,选择对应的端口,即可看到对应的打印信息。



本文未完,请看下篇!

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
我要评论
0
0
关闭 站长推荐上一条 /3 下一条