0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

UART通信入門:4G模組軟件的實(shí)踐指南

合宙LuatOS ? 來源:合宙LuatOS ? 作者:合宙LuatOS ? 2024-11-17 00:07 ? 次閱讀

本文將對(duì)4G模組Air724UG軟件的UART做出相關(guān)示例,希望想了解此模組的朋友們收藏好仔細(xì)看。

一、串口(uart)概述

UART(通用異步接收器/發(fā)送器)是一種串行通信協(xié)議,因其多功能性和簡單性而被廣泛使用。與 I2C 和 SPI 不同,UART 只需要兩條線即可運(yùn)行:TX(發(fā)送)和 RX(接收)。該協(xié)議允許異步通信,也就是說發(fā)送器和接收器之間無需共享時(shí)鐘。數(shù)據(jù)被組織成數(shù)據(jù)包,每個(gè)數(shù)據(jù)包包含一個(gè)起始位、5 到 9 個(gè)數(shù)據(jù)位、一個(gè)可選的奇偶校驗(yàn)位和1個(gè)、2個(gè)或者1.5個(gè)停止位。

優(yōu)點(diǎn):

簡單:UART 通信協(xié)議相對(duì)簡單,易于實(shí)現(xiàn)和調(diào)試。

適用性廣泛:UART 被廣泛應(yīng)用于各種設(shè)備之間的通信,具有較好的兼容性。

距離:UART 通信距離較遠(yuǎn),適用于需要長距離傳輸?shù)膱鼍啊?/p>

缺點(diǎn):

速度較低:UART 通信速度相對(duì)較低,不適用于對(duì)速度要求較高的應(yīng)用。

雙工:UART 通信是雙工的,可以進(jìn)行低速雙工傳輸數(shù)據(jù),進(jìn)行數(shù)據(jù)的發(fā)送和接收。

不可靠:由于 UART 是異步通信,可能會(huì)受到噪聲和干擾的影響,導(dǎo)致數(shù)據(jù)傳輸不可靠。

二、演示功能概述

本文主要教你使用 Air724UG 開發(fā)板對(duì)串口(uart)進(jìn)行一個(gè)測試,其中包含了串口,RS485,usb 虛擬串口,多串口,串口電平轉(zhuǎn)換等內(nèi)容,其中對(duì) RS485 有一個(gè)搭配溫濕度傳感器做的一個(gè)溫濕度傳感器 demo

三、準(zhǔn)備硬件環(huán)境

3.1 開發(fā)板準(zhǔn)備

在開始之前,需要準(zhǔn)備一套 Air724UG 開發(fā)板,目前合宙推出兩種 Air724UG 開發(fā)板(開發(fā)板和核心板),開發(fā)板的優(yōu)勢在于大多數(shù)管腳接口都引出來了,例如 sd 卡,camera,屏幕等接口,實(shí)際使用都是一樣的,在使用時(shí)可根據(jù)自身需求選擇開發(fā)板。

1)如果你選擇的是Air724UG開發(fā)板:

wKgaoWc4viSACdCkABezSUmHhOs057.png

此開發(fā)板的詳細(xì)使用說明參考:

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

Air724UG產(chǎn)品手冊(cè)中的 《EVB_Air724UG_AXX開發(fā)板使用說明》,寫這篇文章時(shí)最新版本的使用說明為:《EVB_Air724UG_A14開發(fā)板使用說明》;開發(fā)板使用過程中遇到任何問題,可以直接參考這份使用說明文檔。

2)如果你選擇的是Air724UG核心板:

wKgaomc4vjOAXHTyAAPTWXfRo9o530.png

下方資料可供你參考查閱:
https://docs.openluat.com/air724ug/product/
Air724UG產(chǎn)品手冊(cè)中的Air724UG-核心板硬件資料

3.2 SIM

在中國大陸環(huán)境下,使用移動(dòng),電信,聯(lián)通的物聯(lián)網(wǎng)卡或者手機(jī)卡都可以。

3.3 數(shù)據(jù)通信線

1)USB 數(shù)據(jù)線

wKgZomc4vkCAApX4AAPoY6eBIEQ215.png

2)由于本篇教程和串口相關(guān),所以需要準(zhǔn)備 USB 轉(zhuǎn) TTL 工具或者串口線。例如 CH340、FT232 等,本文使用的是高速串口

wKgZomc4vkuAL8M0AAizkdeHzgo906.png

3.4 PC 電腦

PC 電腦推薦使用 win7 及以上版本,Air724UG 驅(qū)動(dòng)下載地址:
8910驅(qū)動(dòng):
https://doc.openluat.com/wiki/21?wiki_page_id=6908

3.5 介紹串口如何接線

Air724UG 模組有 5 個(gè)串口,分別為 UART1,UART2,UART3,HOST UART 和 ZSP UART 調(diào)試串口。

其中對(duì)于 Luat 開發(fā)方式,UART1 可以用作一個(gè)通用的串口來連接其他的串口設(shè)備。

UART2 可以用來射頻校準(zhǔn),同時(shí) UART2 還用來和內(nèi)部的藍(lán)牙進(jìn)行通訊,如果用到了藍(lán)牙功能,則 UART2 不可 再用作其他用途。

UART3 是一個(gè)通用串口,可以用作外接 GPS 等外設(shè)。

HOST UART 用來軟件調(diào)試時(shí)輸出 AP trace。

ZSP UART 用來軟件調(diào)試時(shí)輸出 CP trace。

其中 HOST UART 和 ZSP UART 不能作為普通串口使用,只用于調(diào)試輸出底層日志。

1)如果你想了解這 5 個(gè)串口對(duì)應(yīng)于模組的哪個(gè)管腳,請(qǐng)看下方圖片:

wKgaomc4vl2ANXC-AAV73yyPCrk021.png

2)如果你只想知道 Air724UG 開發(fā)板的串口引出位置,請(qǐng)看下方圖片:

wKgaomc4vmmAAGx8AAwH29l0x4U715.png

3)接下來進(jìn)行接線操作,注意模塊與 MCU 之間要交叉接線,即 TX 接 RX,RX 接 TX,GND 接 GND 。由于本文只需用到 UART1 和 UART2 兩個(gè)通用串口,因此下表中只列出了這兩個(gè)通用串口的模塊引腳編號(hào)及模塊與 MCU 之間接線說明。

wKgZomc4vnWAAUMSAAB7PeQ_SqU537.png

四、準(zhǔn)備軟件環(huán)境

4.1 源碼及工具

Air724UG模塊使用固件:
固件地址:
https://docs.openluat.com/air724ug/luatos/firmware/
選擇最新版本CORE_V4030,本文使用的固件版本是:LuatOS-Air_V4030_RDA8910_BT_FLOAT.pac

將固件和腳本燒錄到模塊中,使用說明參考:
Luatools 下載和詳細(xì)使用
https://docs.openluat.com/Luatools/

串口工具本文選用的是 sscom

wKgaomc4voSANHBpAAM101Ha2ec847.png

4.2 uart 庫接口描述

uart 庫即串口操作庫,該庫為內(nèi)部庫,所以在程序中使用時(shí)無需 require 調(diào)用,本文只是簡單介紹 uart 庫中常用接口描述,其余接口描述請(qǐng)參考:uart 接口文檔

4.2.1 配置串口參數(shù)

wKgaoWc4vpCAfYq7AATw5X_e8Uc765.png

4.2.2 寫串口

wKgZoWc4vpmAXVs7AAGvwNCNAfI561.png

4.2.3 讀串口

wKgaoWc4vrGADpJAAAg2TPQM1N4178.pngwKgZoWc4vr-AXlVDAABqmphRDzo394.png

4.2.4 關(guān)閉串口

wKgaoWc4vseAVp1JAAD_2E1awWw471.png

4.2.5 注冊(cè)串口事件回調(diào)

wKgZoWc4vtKAFbCRAAOeTEFsI14842.png

4.2.6 485 轉(zhuǎn)向控制

wKgaoWc4vtyAQTVAAAUshflDjGM602.png

4.2.7 從串口讀取單字符

wKgZomc4vuaAb4vLAAEWZA0Hx48557.png

4.3 初始化 uart

使用 UART1 串口

wKgaomc4vu-ASDUVAAEa_QOpokQ439.png

使用 UART2 串口

wKgZomc4vviAFxhZAADmgbfsepk147.png

4.4 注冊(cè)接收數(shù)據(jù)的回調(diào)函數(shù)

uart.on 函數(shù)用于注冊(cè)一個(gè)接收事件的回調(diào)函數(shù),當(dāng)指定的串口 UART_ID 接收到數(shù)據(jù)時(shí),該回調(diào)函數(shù)會(huì)被自動(dòng)觸發(fā)并執(zhí)行。回調(diào)函數(shù)通過 uart.on(UART_ID, "receive", read)定義,并處理接收到的數(shù)據(jù)。數(shù)據(jù)的讀取是通過 uart.read()函數(shù)進(jìn)行的,uart.read()函數(shù)是非阻塞的,它是直接從現(xiàn)有緩存區(qū)中直接讀取數(shù)據(jù)。

wKgaomc4vwGAInz2AAQzbq3hydQ185.png

4.5 發(fā)送數(shù)據(jù)

本文中字符串編碼格式為 UTF-8 編碼格式,SSCOM 串口調(diào)試工具的編碼格式為 GB2312,所以導(dǎo)致無法正確顯示字符串中的中文,需要注意。

4.5.1 發(fā)送普通字符串

wKgZomc4vwqACXupAAIV_yioVwM358.png

4.5.2 發(fā)送十六進(jìn)制的數(shù)據(jù)串

wKgZoWc4vxSADUHmAABt3xr-RB0511.png

4.5.3 發(fā)送 json 格式的數(shù)據(jù)

wKgaoWc4vx6AdWpEAAG0o8gPwKk550.png

4.6 完整例程

wKgaomc4vy6AA0uOAAOIGM__P3g778.pngwKgZomc4v0KAUvP-AAUKW4gssDo639.pngwKgZomc4v1KADoskAAMm5o7LroQ782.pngwKgZoWc4v2KAZDwTAALezwhpi3U783.pngwKgZomc4v3KAZDHCAAQxPgdD3jA508.pngwKgaoWc4v4SAVUMrAANPnPIbFbs758.pngwKgZoWc4v5KAEJYnAARDGd0kkbo341.png

代碼運(yùn)行結(jié)果:

uart.write(UART_ID, common.utf8ToGb2312("合宙模塊Air724UG"))向串口發(fā)送對(duì)應(yīng)的字符串?dāng)?shù)據(jù),uart.on()會(huì)事先注冊(cè)一個(gè)接收數(shù)據(jù)的回調(diào)函數(shù),當(dāng)指定的串口 UART_ID 接收到數(shù)據(jù)時(shí),該回調(diào)函數(shù)會(huì)被自動(dòng)觸發(fā)并執(zhí)行,log.info("testUart.read bin",data) log.info("testUart.read hex",data:toHex())會(huì)將接收到的數(shù)據(jù)打印出來,此時(shí)我們通過串口調(diào)試工具,選擇對(duì)應(yīng)的端口,即可看到對(duì)應(yīng)的打印信息。

wKgaoWc4v56ADrARAAeeLL1bcRo297.png

五、RS485 通信

5.1 簡單介紹下 RS485

物聯(lián)網(wǎng)(IoT)在工業(yè)場景中的應(yīng)用越來越廣泛,而 RS485 是一種常見的通信協(xié)議,廣泛應(yīng)用于工業(yè)自動(dòng)化和物聯(lián)網(wǎng)系統(tǒng)中。RS485 是一種串行通信標(biāo)準(zhǔn),主要用于長距離、多節(jié)點(diǎn)通信。適用于工業(yè)環(huán)境中的傳感器、執(zhí)行器、控制器等設(shè)備之間的數(shù)據(jù)傳輸,且支持多點(diǎn)通信,可以連接多個(gè)設(shè)備,實(shí)現(xiàn)分布式控制。因?yàn)榫哂休^好的抗干擾能力,也很適用于噪聲環(huán)境下的通信。RS485 支持長距離傳輸,通??蛇_(dá) 1200 米,適用于工業(yè)現(xiàn)場中的遠(yuǎn)程監(jiān)控和控制。

RS485 是一種半雙工通信協(xié)議。半雙工通信協(xié)議允許數(shù)據(jù)在兩個(gè)方向上傳輸,但同一時(shí)間只能在一個(gè)方向上傳輸數(shù)據(jù)。在 RS485 通信中,當(dāng)發(fā)送數(shù)據(jù)時(shí),只能發(fā)送數(shù)據(jù)而不能接收數(shù)據(jù);當(dāng)接收數(shù)據(jù)時(shí),只能接收數(shù)據(jù)而不能發(fā)送數(shù)據(jù)。

比如:在 RS485 通信中,通常使用一個(gè)引腳(如 A 或 RX )作為發(fā)送引腳,另一個(gè)引腳(如 B 或 TX )作為接收引腳。當(dāng)發(fā)送數(shù)據(jù)時(shí),發(fā)送引腳輸出高電平或低電平,接收引腳不工作;當(dāng)接收數(shù)據(jù)時(shí),接收引腳輸出高電平或低電平,發(fā)送引腳不工作。有的也有單獨(dú)一根線專門用于控制收發(fā)邏輯,輸出高低電平,負(fù)責(zé)管理 RS485 的通訊,包括發(fā)送、接收、處理錯(cuò)誤等數(shù)據(jù)。

優(yōu)點(diǎn):

抗干擾能力強(qiáng):RS485 采用差分信號(hào)傳輸,抗干擾能力強(qiáng),適用于工業(yè)環(huán)境中的噪聲干擾。

傳輸距離遠(yuǎn):RS485 支持長距離傳輸,適用于工業(yè)現(xiàn)場中的遠(yuǎn)程監(jiān)控和控制。

多節(jié)點(diǎn)通信:RS485 支持多點(diǎn)通信,可以連接多個(gè)設(shè)備,實(shí)現(xiàn)分布式控制。

兼容性好:RS485 是一種標(biāo)準(zhǔn)化的通信協(xié)議,具有較好的兼容性,可以與其他設(shè)備進(jìn)行通信。

成本較低:RS485 模塊和電纜的成本相對(duì)較低,適用于工業(yè)現(xiàn)場中的成本控制。

缺點(diǎn):

信號(hào)衰減:隨著距離的增加,信號(hào)衰減會(huì)加劇,影響通信質(zhì)量。

速率限制:RS485 的傳輸速率相對(duì)較低,通常在 9600bps 到 115200bps 之間,適用于低速數(shù)據(jù)傳輸。

電氣特性要求:RS485 對(duì)電氣特性有較高的要求,需要使用特定的電纜和連接器。

布線復(fù)雜:RS485 需要使用雙絞線進(jìn)行布線,布線復(fù)雜度較高。

5.2 硬件展示

724UG 開發(fā)板 +RS485-TTL+RS485-USB

wKgZoWc4v7GATvwyAAfXRKhcmlI786.png

RS485-USB

wKgaoWc4v7yAMAGuAAfP24FPgtk027.png

接線方式:

wKgZoWc4v8aAPuAHAAiAQlHOM18847.png

注意:上面的硬件使用的 RS485-TTL 為硬件自動(dòng)轉(zhuǎn)換,實(shí)際使用根據(jù)硬件設(shè)置去選擇 gpio 轉(zhuǎn)換或者硬件自動(dòng)轉(zhuǎn)換

5.3 初始化 uart

wKgaoWc4v8-APutSAAVgsZOQ8ao703.png

5.4 注冊(cè)接收數(shù)據(jù)的回調(diào)函數(shù)

wKgaomc4v9qAWoF6AAQk_LXp_OU854.png

5.5 發(fā)送數(shù)據(jù)

本文中字符串編碼格式為 UTF-8 編碼格式,SSCOM 串口調(diào)試工具的編碼格式為 GB2312,所以導(dǎo)致無法正確顯示字符串中的中文,需要注意。

5.5.1 發(fā)送普通字符串

wKgaomc4v-SABazdAAIVs6LuQgE265.png

5.5.2 發(fā)送十六進(jìn)制的數(shù)據(jù)串

wKgZomc4v-yAKilJAAByePJRrAo825.png

5.5.3 發(fā)送 json 格式的數(shù)據(jù)

wKgZomc4v_aAOXvKAAG1xjD9DUs328.png

5.6 完整例程

wKgaomc4wAOATyA5AAOomMOVHRE521.pngwKgaomc4wBGAWE83AAT28VBnQ4M829.pngwKgZomc4wCCAaivpAANiWC-PFHw383.pngwKgZomc4wC-AQ9_sAALorMhOk0o164.pngwKgaomc4wD2ASMtsAAQ-OCcCOK4951.pngwKgZomc4wEyACAVYAANShLQ1r-Y661.pngwKgZomc4wFmAUgqbAATDp4oj83s584.png

代碼運(yùn)行結(jié)果:

uart.write(UART_ID, common.utf8ToGb2312("合宙模塊Air724UG"))向串口發(fā)送對(duì)應(yīng)的字符串?dāng)?shù)據(jù),uart.on()會(huì)事先注冊(cè)一個(gè)接收數(shù)據(jù)的回調(diào)函數(shù),當(dāng)指定的串口 UART_ID 接收到數(shù)據(jù)時(shí),該回調(diào)函數(shù)會(huì)被自動(dòng)觸發(fā)并執(zhí)行,log.info("testUart.read bin",data) log.info("testUart.read hex",data:toHex())會(huì)將接收到的數(shù)據(jù)打印出來,此時(shí)我們通過串口調(diào)試工具,選擇對(duì)應(yīng)的端口,即可看到對(duì)應(yīng)的打印信息。

wKgaomc4wGyAOuymAAhb-AhNBYg284.png

5.7 溫濕度傳感器例程

5.7.1 硬件展示

使用的硬件為 sht20 溫濕度傳感器 +724UG 開發(fā)板 +RS485-TTL

wKgZoWc4wHiAV6rDAAfLVL4C7N0482.png

sht20溫濕度傳感器

wKgaoWc4wIKAZtsIAAQAt2StsDo084.png

接線方式:

wKgZoWc4wI2AANwlAAuM2QBgZFw692.png

5.7.2 代碼展示

wKgZoWc4wJmAaXUnAAPgR2u2sJ0399.pngwKgaoWc4wKmAcA4HAAUuPcF3-64168.pngwKgaoWc4wLqAGWlTAAb8MQ6shOg810.pngwKgZomc4wMiADxSaAASuvOKfoQs385.pngwKgaomc4wNiAcyArAAOKsFpM0pg864.pngwKgZomc4wOeAOMXWAAUE5xEUYSA145.pngwKgaomc4wPOAai8yAAJODX5GXGw647.png

wKgaomc4wP2AOe7eAAPyoss-A8I835.png

本示例是利用 sht20 溫濕度傳感器 +724UG 開發(fā)板 +RS485-TTL 通過 485 做的一個(gè)采集溫濕度的 demo,主要邏輯是通過發(fā)送 16 進(jìn)制數(shù)據(jù) 0x01,0x04,0x00,0x01,0x00,0x02,0x20,0x0B 來獲取溫濕度

wKgZomc4wQiAMpIuAALPGjgfM7A080.png

然后對(duì)獲取數(shù)據(jù)進(jìn)行 modbus 校驗(yàn),然后對(duì)數(shù)據(jù)進(jìn)行解析,根據(jù)公式計(jì)算出實(shí)際溫濕度

wKgZomc4wROAe1q1AAEoowRlwx0688.png

通過 json.encode()把表內(nèi)的數(shù)據(jù)轉(zhuǎn)換成 json 類型打印出來

六、USB 虛擬串口

6.1 介紹 USB 虛擬串口

USB 虛擬串口是一種將 USB 接口轉(zhuǎn)換為串行通信接口的技術(shù)。它允許計(jì)算機(jī)通過 USB 接口與其他設(shè)備進(jìn)行串行通信,如調(diào)制解調(diào)器、打印機(jī)、掃描儀等。USB 虛擬串口通常由一個(gè) USB 轉(zhuǎn)串行適配器和一個(gè)驅(qū)動(dòng)程序組成。

并且虛擬串口通常沒有波特率要求,因?yàn)樗鼈兪擒浖?a href="http://wenjunhu.com/analog/" target="_blank">模擬的串行通信接口,不依賴于物理硬件。然而,在實(shí)際應(yīng)用中,虛擬串口仍然需要遵守一些基本的通信協(xié)議,比如數(shù)據(jù)位、停止位和校驗(yàn)位等。

USB 虛擬串口的主要功能包括:

串行通信:USB 虛擬串口可以模擬串行通信接口,實(shí)現(xiàn)數(shù)據(jù)的串行傳輸。它支持各種串行通信協(xié)議,如 RS-232、RS-485 等。

傳輸可靠:傳統(tǒng)的串口連接線容易受到干擾,而 USB 虛擬串口采用的 USB 技術(shù)可以更好地抵抗干擾,提高了通信的可靠性。

串行控制:USB 虛擬串口可以控制串行通信參數(shù),如波特率、數(shù)據(jù)位、停止位、奇偶校驗(yàn)等。它還支持串行通信的流控制和錯(cuò)誤處理。

使用方便:USB 虛擬串口無需再使用傳統(tǒng)的串口連接線,只需要一個(gè)標(biāo)準(zhǔn)的 USB 數(shù)據(jù)線即可連接計(jì)算機(jī)和外部設(shè)備,使得設(shè)備連接更加方便

USB 虛擬串口廣泛應(yīng)用于各種領(lǐng)域,如工業(yè)自動(dòng)化、物聯(lián)網(wǎng)、智能家居等。它為各種設(shè)備提供了便捷的串行通信解決方案,提高了系統(tǒng)的靈活性和可靠性。

6.2 虛擬通訊串口-端口位置說明

首先通過帶有 DM、DP 的 USB 數(shù)據(jù)線兩端連接 模塊 和 Windows7 及以上系統(tǒng)的電腦。

然后將模塊開機(jī),就可以從電腦的設(shè)備管理器中看到端口處多出來 4 個(gè) USB 端口。

驅(qū)動(dòng)裝好之后會(huì)枚舉出 4 個(gè) USB 接口,其中 LUAT USB Device 1 AT (COM6)為虛擬 AT 口,MODEM 為日志口,AP,和 CP 口為底層日志口

wKgaomc4wSKASozoAAEAiJ9702Y707.png

6.3 初始化 USB_UART

wKgZomc4wS2ARuneAAEYlImGYZo087.png

6.4 注冊(cè)接收數(shù)據(jù)的回調(diào)函數(shù)

wKgaomc4wTeAftzAAARQ_vfaGCM855.png

6.5 發(fā)送數(shù)據(jù)

本文中字符串編碼格式為 UTF-8 編碼格式,SSCOM 串口調(diào)試工具的編碼格式為 GB2312,所以導(dǎo)致無法正確顯示字符串中的中文,需要注意。

6.5.1 發(fā)送普通字符串

wKgZomc4wUKAL9oVAAIxy8YpAGA112.png

6.5.2 發(fā)送十六進(jìn)制的數(shù)據(jù)串

wKgaomc4wUuAN2q4AAByF1SAhLg048.png

6.5.3 發(fā)送 json 格式的數(shù)據(jù)

wKgaomc4wVSAX4nzAAHE9Npu9to809.png

6.6 完整例程

wKgZomc4wWOAEtVkAAPgD1HyRWU434.pngwKgZoWc4wXSAIytkAAUmcFfk81Y667.pngwKgZoWc4wYOAObIIAAOl5meG-cw941.pngwKgaoWc4wZCAEFtoAAL5MTfNsGU760.pngwKgaomc4waOADz64AAR5XpfRTCc277.pngwKgZoWc4wbGAVqMeAALOM8B7xGY191.pngwKgZomc4wcaAKP9kAAYBNbTrISo116.pngwKgaomc4wdSAYQebAADFC-DeJVU951.png

代碼運(yùn)行結(jié)果:

wKgaomc4wd-AezyaAAaoWPQVztQ332.png

七、多串口

7.1 簡介

前面已經(jīng)介紹了串口的基本用法,本文將使用兩個(gè)串口(UART1、UART2)進(jìn)行分別通信的演示。

7.2 介紹多串口如何接線

大家可先跳轉(zhuǎn)至 3.5 介紹串口如何接線中查看單串口的接線說明,在學(xué)會(huì)了 UART1 接線和 UART2 接線后,只需將這兩個(gè)通用串口同時(shí)接上對(duì)應(yīng)位置即可。

7.3 初始化 UART1 串口和 UART2 串口

wKgZomc4weuACzkZAAGCBedt9-A375.png

7.4 注冊(cè)接收數(shù)據(jù)的回調(diào)函數(shù)

wKgaomc4wfyAMXb5AATBHEVPIvw085.pngwKgZomc4wguAQ5C7AAS-cjfV0Ig145.pngwKgaomc4whiAGPF6AACekiA6lXM152.png

7.5 發(fā)送數(shù)據(jù)

本文中字符串編碼格式為 UTF-8 編碼格式,SSCOM 串口調(diào)試工具的編碼格式為 GB2312,所以導(dǎo)致無法正確顯示字符串中的中文,需要注意。

7.5.1 發(fā)送普通字符串

wKgZomc4wiKADJ6mAAD77ayG4Qo287.png

7.5.2 發(fā)送十六進(jìn)制的數(shù)據(jù)串

wKgaomc4wiuAMNk0AADdpvCGpXs904.png

7.5.3 發(fā)送 json 格式的數(shù)據(jù)

wKgZomc4wjWAZUMjAAH8N7rPbbE478.png

7.6完整例程

wKgZomc4wlyAe9I6AAPAvkKfZqk015.pngwKgaomc4wmqAfj1sAAQib1VsOnY045.pngwKgaomc4wnqAGepmAAQ0r4KhNhs951.pngwKgZomc4woeAUIxXAATGB4_dr3E530.pngwKgaomc4wpeANEQ2AAPwrmXqVfY679.pngwKgZomc4wqSABa1OAAVxiqa0lQk304.png

代碼運(yùn)行結(jié)果:

wKgaomc4wq-ABlz0AAepCx0ZvG0689.png

八、UART 電平

8.1 介紹 UART 電平

UART 電平是指串行通信中使用的電壓電平標(biāo)準(zhǔn)。常見的串口電平標(biāo)準(zhǔn)有 RS-232、TTL 和 RS-485 等。

1、RS-232 電平:RS-232 是一種常用的串口通信標(biāo)準(zhǔn),它使用負(fù)邏輯電平,即邏輯 1 用 -3V 到 -15V 表示,邏輯 0 用 +3V 到 +15V 表示。RS-232 電平適用于短距離、低速率的通信。

2、TTL 電平:TTL(Transistor-Transistor Logic)電平是一種常見的數(shù)字電路電平標(biāo)準(zhǔn),它使用正邏輯電平,即邏輯 1 用 +5V 表示,邏輯 0 用 0V 表示。TTL 電平適用于短距離、高速率的通信。

3、RS-485 電平:RS-485 是一種常用的串口通信標(biāo)準(zhǔn),它使用差分電平,即邏輯 1 用 +2V 到 +6V 表示,邏輯 0 用 -2V 到 -6V 表示。RS-485 電平適用于長距離、高速率的通信。

在串口通信中,選擇合適的電平標(biāo)準(zhǔn)非常重要,它直接影響到通信的可靠性和穩(wěn)定性。

Air724UG 模塊的 UART IO 電壓默認(rèn)為 1.8V,如果要和 3.3V/5V 的 MCU 或其他串口外設(shè)通信,必須要加電平轉(zhuǎn)換電路

8.2 電平轉(zhuǎn)換參考電路設(shè)計(jì)

wKgaomc4wr6AUutZAADm_9ZHGxQ273.png

wKgZomc4wtiAVAWEAAZEAvRUGRk479.pngwKgZomc4wueAct3vAAMUf-yaLSo515.png

8.3 常見問題

1、串口電平電壓過低或過高可能會(huì)導(dǎo)致什么問題?如果電壓過低,可能會(huì)導(dǎo)致接收器無法正確識(shí)別信號(hào),如果過高,可能會(huì)導(dǎo)致信號(hào)損壞或損壞接收器。概述:可能會(huì)導(dǎo)致串口無法正常通訊,或通訊數(shù)據(jù)會(huì)突然出現(xiàn)亂碼,數(shù)據(jù)錯(cuò)亂等問題。

九、常見問題

9.1 模塊串口接收到亂碼是什么情況?

串口接收到亂碼通常是由于數(shù)據(jù)格式不匹配或信號(hào)干擾等原因引起的。以下是一些可能導(dǎo)致亂碼的情況及其解決方法:

1、波特率不一致 - 情況:發(fā)送方和接收方的波特率設(shè)置不同。- 解決:確保兩端的波特率設(shè)置一致。

2、數(shù)據(jù)位、停止位或校驗(yàn)位不匹配 - 情況:數(shù)據(jù)格式不一致,例如數(shù)據(jù)位數(shù)、停止位或是否使用校驗(yàn)位。- 解決:確認(rèn)發(fā)送和接收的設(shè)置一致。例如,常用設(shè)置為8個(gè)數(shù)據(jù)位、1個(gè)停止位、無校驗(yàn)。

3、信號(hào)干擾 - 情況:外部干擾導(dǎo)致信號(hào)失真。- 解決:使用屏蔽線纜,縮短線纜長度,避免在電磁干擾強(qiáng)的環(huán)境中使用。

4、接線錯(cuò)誤 - 情況:TX(發(fā)送)和RX(接收)線接反。- 解決:檢查接線,確保正確連接。

5、設(shè)備未正確初始化 - 情況:發(fā)送設(shè)備未配置好,導(dǎo)致數(shù)據(jù)格式不正確。- 解決:檢查發(fā)送設(shè)備的初始化代碼和配置,確保正確設(shè)置。

6、緩沖區(qū)溢出 - 情況:接收端處理速度慢,導(dǎo)致數(shù)據(jù)被覆蓋。- 解決:提高接收端處理速度,或者增加緩沖區(qū)大小。

7、電源問題 - 情況:設(shè)備供電不足或不穩(wěn)定。- 解決:檢查電源供應(yīng),確保設(shè)備正常供電。

8、數(shù)據(jù)編碼不一致 - 情況:發(fā)送和接收使用不同的字符編碼(如ASCII與UTF-8)。- 解決:確保兩端使用相同的字符編碼。

9、物理連接問題 - 情況:接口接觸不良或線纜損壞。- 解決:檢查串口連接,確保接觸良好,必要時(shí)更換線纜。

10、串口驅(qū)動(dòng)問題 - 情況:驅(qū)動(dòng)程序不兼容或未正確安裝。- 解決:檢查并更新串口驅(qū)動(dòng)程序。

9.2 使用 RS485 連接模塊,出現(xiàn)漏發(fā),接收不到的情況是怎么回事?

出現(xiàn)漏發(fā)和接收不到的情況,大概率是因?yàn)槟K轉(zhuǎn)向時(shí)間設(shè)置的問題,模塊收不到數(shù)據(jù)可能是因?yàn)闆]有設(shè)置轉(zhuǎn)向腳,導(dǎo)致只能發(fā)不能收,出現(xiàn)漏發(fā)的情況,大概率是因?yàn)檗D(zhuǎn)向時(shí)間設(shè)置和設(shè)備的實(shí)際轉(zhuǎn)向存在偏差導(dǎo)致漏數(shù)據(jù)的情況,可以通過 uart.set_rs485_oe()接口調(diào)整轉(zhuǎn)向時(shí)間,通常 9600 波特率設(shè)置 3500us 的轉(zhuǎn)向時(shí)間。

9.3 模塊串口接收不到數(shù)據(jù)/模塊發(fā)的數(shù)據(jù)收不到?

如果出現(xiàn)模塊串口接收不到數(shù)據(jù)的情況,首先排查軟件方面邏輯是否寫的正確,可以按照 Uart 的 demo 進(jìn)行測試,如果 demo 也不行的話,排查下模塊端和設(shè)備端是否為 rx-tx,tx-rx 這樣的接法,避免 rx-rx,tx-tx,如果接線也都正常的話確定下波特率方面,如果有條件的話,可以直接通過邏輯分析儀/示波器檢測模塊的 rx/tx 腳看是否收到數(shù)據(jù)或者發(fā)送數(shù)據(jù)。

分享完畢。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 通信協(xié)議
    +關(guān)注

    關(guān)注

    28

    文章

    882

    瀏覽量

    40306
  • 物聯(lián)網(wǎng)
    +關(guān)注

    關(guān)注

    2909

    文章

    44634

    瀏覽量

    373316
  • uart
    +關(guān)注

    關(guān)注

    22

    文章

    1235

    瀏覽量

    101387
  • 模組
    +關(guān)注

    關(guān)注

    6

    文章

    1492

    瀏覽量

    30383
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    4G 模組 HTTP 網(wǎng)絡(luò)協(xié)議應(yīng)用 白嫖版!

    今天我們來白嫖的是Air780E模組LuatOS開發(fā)4G通信中HTTP網(wǎng)絡(luò)協(xié)議的應(yīng)用,實(shí)現(xiàn)模組和服務(wù)器之間數(shù)據(jù)的傳輸,詳細(xì)介紹硬件環(huán)境、軟件
    的頭像 發(fā)表于 10-30 14:22 ?801次閱讀
    <b class='flag-5'>4G</b> <b class='flag-5'>模組</b> HTTP 網(wǎng)絡(luò)協(xié)議應(yīng)用 白嫖版!

    白嫖篇:4G 模組 MQTT 通信功能!

    今天我們白嫖的是4G 模組 MQTT 通信功能!以AIR708E開發(fā)板為例 從MQTT介紹,演示功能概述,準(zhǔn)備硬件環(huán)境,準(zhǔn)備軟件環(huán)境,代碼示例介紹等給大家展示明白
    的頭像 發(fā)表于 10-30 14:53 ?1151次閱讀
    白嫖篇:<b class='flag-5'>4G</b> <b class='flag-5'>模組</b> MQTT <b class='flag-5'>通信</b>功能!

    UART串口通信示例:開啟通信寶藏之門的定位模組LuatOS入門

    今天我們要講解的是UART串口通信示例,關(guān)于Air201資產(chǎn)定位模組LuatOS入門,我會(huì)從搭建環(huán)境、代碼燒錄、示例效果等來細(xì)說:
    的頭像 發(fā)表于 11-03 19:55 ?928次閱讀
    <b class='flag-5'>UART</b>串口<b class='flag-5'>通信</b>示例:開啟<b class='flag-5'>通信</b>寶藏之門的定位<b class='flag-5'>模組</b>LuatOS<b class='flag-5'>入門</b>

    掌握4G模組SPI|技術(shù)指南

    本次我要分享的是4G模組SPI的技術(shù)指南,以合宙Air724UG為例,學(xué)完本章幫你實(shí)現(xiàn)技術(shù)提升。
    的頭像 發(fā)表于 12-14 09:38 ?598次閱讀
    掌握<b class='flag-5'>4G</b><b class='flag-5'>模組</b>SPI|技術(shù)<b class='flag-5'>指南</b>

    MiniPCIE 封裝4G模組價(jià)值仍在

    率,低延時(shí)通信場景中。以前對(duì)速率,時(shí)延有一定要求的物聯(lián)網(wǎng)設(shè)備將會(huì)向4G的LTE網(wǎng)絡(luò)遷移,4G網(wǎng)絡(luò)已經(jīng)足夠承載相關(guān)設(shè)備。也就是說,很長一段時(shí)間內(nèi)就是作為物聯(lián)網(wǎng)的承載網(wǎng)絡(luò)的4G網(wǎng)絡(luò)也不會(huì)被
    發(fā)表于 02-21 11:57

    4G模組

    4G模組:CR100IP-AHD-TF1-1F
    發(fā)表于 03-21 20:02 ?0次下載

    4G模塊是什么4G模塊的類別4G模塊的選擇

    ,具備通訊更快、互聯(lián)網(wǎng)頻帶寬、通訊靈活性等特性。4G模塊就是指硬件設(shè)備載入到特定頻率段,手機(jī)軟件兼容規(guī)范的LTE協(xié)議書,硬件軟件高寬比集成化模組化的一種商品的通稱。硬件設(shè)備將頻射、基帶
    的頭像 發(fā)表于 10-24 18:56 ?5.1w次閱讀

    4G模組, 4G模塊是什么?4G模組,4G模塊的平臺(tái)?4G模組,4G模塊怎么選?ASR RDA 高通

    頻帶寬、通訊靈活性等特性。4G模塊就是指硬件設(shè)備載入到特定頻率段,3GPPP規(guī)范的LTE協(xié)議書,硬件軟件高度集成化模組化通稱。硬件設(shè)備將
    的頭像 發(fā)表于 06-07 19:50 ?1.5w次閱讀

    4G模組之UDP應(yīng)用的最佳實(shí)踐!

    今天說的是4G模組之UDP應(yīng)用,展示最佳實(shí)踐,送你參考。
    的頭像 發(fā)表于 11-08 09:24 ?354次閱讀
    <b class='flag-5'>4G</b><b class='flag-5'>模組</b>之UDP應(yīng)用的最佳<b class='flag-5'>實(shí)踐</b>!

    字符串處理:4G模組軟件指南精要!

    最近一直有朋友咨詢我關(guān)于4G模組的字符串處理,今天我便把相關(guān)指南展示給大家。
    的頭像 發(fā)表于 11-17 09:57 ?218次閱讀
    字符串處理:<b class='flag-5'>4G</b><b class='flag-5'>模組</b><b class='flag-5'>軟件</b><b class='flag-5'>指南</b>精要!

    4G模組SD卡使用技巧|專家指南

    今天我們學(xué)習(xí)的是4G模組SD卡使用技巧,以Air724UG為例做出指南供大家參考。
    的頭像 發(fā)表于 12-14 09:37 ?178次閱讀
    <b class='flag-5'>4G</b><b class='flag-5'>模組</b>SD卡使用技巧|專家<b class='flag-5'>指南</b>

    LuatOS開發(fā)之4G模組隨機(jī)數(shù)(random)|實(shí)戰(zhàn)指南

    本次學(xué)習(xí)的實(shí)戰(zhàn)是關(guān)于4G模組LuatOS開發(fā)的隨機(jī)數(shù)示例指南,希望大家有所收獲。
    的頭像 發(fā)表于 11-30 09:51 ?201次閱讀
    LuatOS開發(fā)之<b class='flag-5'>4G</b><b class='flag-5'>模組</b>隨機(jī)數(shù)(random)|實(shí)戰(zhàn)<b class='flag-5'>指南</b>

    4G模組Air724UG軟件示例:UDP實(shí)戰(zhàn)演練!

    關(guān)于4G模組Air724UG軟件的UDP示例,今天我將對(duì)其實(shí)戰(zhàn)演練,整理成文示例展示:
    的頭像 發(fā)表于 11-26 12:10 ?181次閱讀
    <b class='flag-5'>4G</b><b class='flag-5'>模組</b>Air724UG<b class='flag-5'>軟件</b>示例:UDP實(shí)戰(zhàn)演練!

    輕松攻克低功耗4G模組軟件的FTP示例!

    今天是以Air724UG模組為例,輕松攻克低功耗4G模組軟件的FTP示例。
    的頭像 發(fā)表于 12-05 09:08 ?191次閱讀
    輕松攻克低功耗<b class='flag-5'>4G</b><b class='flag-5'>模組</b><b class='flag-5'>軟件</b>的FTP示例!

    解讀Air724UG低功耗4G模組軟件的語音通話!

    本篇文章以Air724UG模組為例,解讀低功耗4G模組軟件的語音通話,呈現(xiàn)實(shí)用教程供大家參考。
    的頭像 發(fā)表于 12-09 09:39 ?206次閱讀
    解讀Air724UG低功耗<b class='flag-5'>4G</b><b class='flag-5'>模組</b><b class='flag-5'>軟件</b>的語音通話!