精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

在線串口工具(R-WebEmbedded)

Rice嵌入式開發技術分享 ? 來源:Rice嵌入式 ? 作者:Rice嵌入式 ? 2023-12-15 14:15 ? 次閱讀

對于嵌入式工程師來說,串口工具在開發和調試過程中必不可少的利器。工具能幫助我們發送和接收串行數據,進行設備通信和調試。通過串口工具,工程師可以實時監控串口數據,查看設備是否正常工作,同時也可以通過發送特定的命令來測試設備的反應。

傳統的電腦應用-串口助手,雖然也能滿足這些需求,但它們在便捷性上往往受到限制。它需要去網上下載,有些還需要安裝。

3c46c47e-9582-11ee-8850-92fbcf53809c.png3c658206-9582-11ee-8850-92fbcf53809c.png3c8d6faa-9582-11ee-8850-92fbcf53809c.png

相比之下,在線串口助手的出現為嵌入式工程師帶來了福音。它無需安裝、無需配置,只需通過瀏覽器即可使用。此外,在線串口助手通常提供更為直觀的界面和易于操作的功能,幫助工程師更高效地進行工作。

博主最近看到網上有開發者--老大哥,開源了一個在線串口工具,其鏈接:https://gitee.com/itldg/web-serial-debug,其開源協議:Apache License 2.0。

通過上面的啟發,博主想著也寫一個網頁(R-WebEmbedded),并集成該開源軟件,方便大家使用。

3c9dd5f2-9582-11ee-8850-92fbcf53809c.jpg

在開發在線串口助手之前,就必須先了解什么是web serial api

R-WebEmbedded 說明

目前該網頁主要有兩個功能,開源軟件的瀏覽和在線串口工具。

R-WebEmbedded主界面說明--主要包含:標題,風火輪官方鏈接博主的gitee,github鏈接,以及功能模塊

3cacb20c-9582-11ee-8850-92fbcf53809c.jpg

R-WebEmbedded--開源軟件包,該界面展示了博主提交給RT-Threead的軟件包。

3cb66e00-9582-11ee-8850-92fbcf53809c.png

R-WebEmbedded - 在線串口助手,該功能集成了老大哥的開源的串口工具。界面分為:串口配置區,串口數據收發區,串口快捷方式區。

3cba4e4e-9582-11ee-8850-92fbcf53809c.png

什么是Web Serial API

串口是一個雙向通信接口,允許字節發送和接收數據。

Web Serial API為網站提供了一種使用JavaScript對串行設備進行讀寫的方法。串行設備可以通過用戶系統上的串行端口連接,也可以通過模擬串行端口的可移動USB藍牙設備連接。換句話說,Web Serial API通過允許網站與串行設備(如微控制器和3D打印機)通信來連接網絡和物理世界。

如何使用Web Serial API

瀏覽器支持檢測

檢查瀏覽器是否支持Web Serial API,有些瀏覽器可能不支持該功能,可以選擇Edge或Chrome瀏覽器。

if(!('serial'innavigator)){
alert('當前瀏覽器不支持串口操作,請更換Edge或Chrome瀏覽器')
}

打開串口

Web Serial API在設計上是異步的。這可以防止網站UI在等待輸入時阻塞,這一點很重要,因為串行數據可以在任何時候接收,需要一種方法來偵聽它。要打開串口,首先訪問一個SerialPort對象。為此,您可以通過調用navigator.serial.requestPort()來提示用戶選擇一個串行端口,或者從navigator.serial.getPorts()中選擇一個,該方法返回一個先前授予該網站訪問權限的串行端口列表。

//提示用戶選擇一個串口。
constserialPort=awaitnavigator.serial.requestPort();

//獲取用戶之前授予該網站訪問權限的所有串口。
constserialPort=awaitnavigator.serial.getPorts();
document.getElementById('serial-select-port').addEventListener('click',async()=>{
try{
awaitnavigator.serial.requestPort().then(async(port)=>{
serialPort?.close()
awaitserialPort?.forget()
serialPort=port
serialStatuChange(true)
})
}catch(e){
console.error('獲取串口權限出錯'+e.toString())
}
})

3cd3d54e-9582-11ee-8850-92fbcf53809c.png

當我選擇好了SerialPort對象之后,調用serialPort.open(),打開串口。其中打開串口可以指定其選項,選項是有默認值,并且是可選的。

dataBits:每幀的數據位數(7或8)。
stopBits:一幀結束時的停止位數(1或2)。
parity:校驗模式,可以是none,偶數,奇數。
bufferSize:應該創建的讀寫緩沖區大小(必須小于16MB)。
flowControl:流控模式(none或hardware)。

關閉串口

當我們不再使用串口時,我們需要將串口對象關閉,調用serialPort.close()。如果串行端口的readable和writable被解鎖,則關閉該串行端口,這意味著已經為其各自的讀寫成員調用了releaseLock()。但是,當使用循環從串行設備連續讀取數據時,端口Readable將一直被鎖定,直到遇到錯誤。在這種情況下,調用reader.cancel()將強制reader.read()立即解析為{value: undefined, done: true},從而允許循環調用reader.releaseLock()。

asyncfunctioncloseSerial(){
if(serialOpen){
serialOpen=false
reader?.cancel()
serialToggle.innerHTML='打開串口'
disabledOptions(false)
}
}

asyncfunctionreadData(){
while(serialOpen&&serialPort.readable){
reader=serialPort.readable.getReader()
try{
while(true){
const{value,done}=awaitreader.read()
if(done){
break
}
dataReceived(value)
}
}catch(error){
}finally{
reader.releaseLock()
}
}
awaitserialPort.close()
}

串口讀數據

Web Serial API中的輸入流由streams API處理。

串口連接建立之后,SerialPort對象的readable屬性返回ReadableStream。這些將用于從串行設備接收數據, 其使用Uint8Array實例進行數據傳輸。

當新數據從串行設備到達時,port.readable.getReader().read()異步返回兩個屬性:value和一個done的布爾值。如果done為真,則串行端口已經關閉,或者沒有更多的數據輸入。調用port.readable.getReader()創建一個讀取器并將其鎖定為readable。當可讀被鎖定時,串口不能被關閉。

asyncfunctionreadData(){
while(serialOpen&&serialPort.readable){
reader=serialPort.readable.getReader()
try{
while(true){
const{value,done}=awaitreader.read()
if(done){
break
}
dataReceived(value)
}
}catch(error){
}finally{
reader.releaseLock()
}
}
awaitserialPort.close()
}

串口寫數據

Web Serial API中的輸出流由streams API處理。

串口連接建立之后,SerialPort對象的writable屬性返回WritableStream。這些將數據發送到串行設備, 其使用Uint8Array實例進行數據傳輸。

要將數據發送到串行設備,請將數據傳遞到port.writable.getWriter().write()。在port.writable. getwriter()上調用releaseLock()是為了稍后關閉串口。

串口工具提供了hex和字符串發送格式。

asyncfunctionsendHex(hex){
constvalue=hex.replace(/s+/g,'')
if(/^[0-9A-Fa-f]+$/.test(value)&&value.length%2===0){
letdata=[]
for(leti=0;i

總結

在線串口助手提供了更佳便捷的開發模式,無需下載安裝串口助手。

R-WebEmbedded - 在線嵌入式工具,其登錄網站https://ricechen0.gitee.io/r-web-embedded/

R-WebEmbedded - 在線嵌入式工具開源代碼鏈接https://gitee.com/RiceChen0/r-web-embedded

審核編輯 黃宇

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 嵌入式
    +關注

    關注

    5068

    文章

    19017

    瀏覽量

    303262
  • 串口工具
    +關注

    關注

    1

    文章

    9

    瀏覽量

    7860
收藏 人收藏

    評論

    相關推薦

    為什么通信要使用虛擬串口串口助手?

    串口助手和虛擬串口是什么?串口助手和虛擬串口串口通信中很常見。串口助手是用于
    的頭像 發表于 11-15 01:04 ?401次閱讀
    為什么通信要使用虛擬<b class='flag-5'>串口</b>和<b class='flag-5'>串口</b>助手?

    KM振動在線監測系統助力設備煥新升級#振動在線監測#振動監測#在線監測

    在線監測
    KM預測性維護專家
    發布于 :2024年10月23日 14:59:48

    串口工具UartAssist5.0.exe

    串口工具UartAssist5.0.exe
    發表于 10-21 10:57 ?12次下載

    F28M35x串口在線升級設計

    電子發燒友網站提供《F28M35x串口在線升級設計.pdf》資料免費下載
    發表于 09-02 10:58 ?0次下載
    F28M35x<b class='flag-5'>串口</b><b class='flag-5'>在線</b>升級設計

    好用的串口工具

    好用的串口工具
    發表于 08-15 10:35 ?0次下載

    更強的無線(雙)串口數據記錄 調試工具

    ,通過網絡可在線查看歷史日志(無需斷電),實時日志,無線調試;設計此工具的初心是希望可以替代傳統的usb轉串口工具,方便設備數據采集和串口
    的頭像 發表于 08-02 08:11 ?576次閱讀
    更強的無線(雙)<b class='flag-5'>串口</b>數據記錄 調試<b class='flag-5'>工具</b>

    OpenAI將推出在線搜索工具“SearchGPT”

    科技巨頭OpenAI正悄然醞釀一場搜索領域的變革,其最新推出的在線搜索工具“SearchGPT”正悄然挑戰著Alphabet旗下谷歌的搜索霸主地位。這款被寄予厚望的新工具,目前正處于緊鑼密鼓的測試
    的頭像 發表于 07-26 16:54 ?640次閱讀

    請問ESP32是否支持串口在線升級?

    請問ESP32是否支持串口在線升級。對OTA升級例程進行修改,將http傳輸改為串口傳輸,是否可行。
    發表于 06-18 06:30

    免費好用的在線仿真工具Wokwi

    給大家分享一個不錯的在線仿真工具(Wokwi),支持多種平臺,支持市面上主流的開發板,比如:STM32、ESP32、Arduino、樹莓派等。還支持常見的傳感器、顯示器件(LCD、LED屏幕)等
    的頭像 發表于 06-15 08:10 ?4168次閱讀
    免費好用的<b class='flag-5'>在線</b>仿真<b class='flag-5'>工具</b>Wokwi

    stmf32f334r8在MDK中沒有支持,不能在線調試怎么解決?

    stmf32f334r8 在MDK中沒有支持,不能在線調試
    發表于 05-15 07:36

    一款適合嵌入式工程師使用的在線工具

    一款適合嵌入式工程師使用的在線工具工具有如下功能,如下圖所示: 1. 報文校驗功能,如下圖所示 2. UDP服務端測試工具:該UDP服務端
    發表于 04-09 22:20

    藍牙多串口配置工具

    工具是一種多串口配置工具,基于MCF開發,可以將配置信息同時下發到多個串口,支持配置文件信息下發、文本下發和十六進制下發,一般用于芯片等配置工裝,提高生產效率。 多
    發表于 03-25 19:22

    安森美推出一款基于PLECS的具有獨特功能的領先在線仿真工具

    Elite Power仿真工具是安森美(onsemi)推出的一款基于PLECS的具有獨特功能的領先在線仿真工具,適用于軟/硬開關應用,使工程師在開發周期的早期階段,
    的頭像 發表于 03-20 09:58 ?632次閱讀

    請問TASKING v6.2.r1版本可以在線調試TC397嗎?

    TASKINGv6.2.r1版本可以在線調試TC397嗎?新建的TC397 Demo工程,發現Debug Configration里面只有Tricore 1.6.2 Instruction Set Simulator這一選項
    發表于 01-25 07:00

    全志R128 DSP開發工具安裝教程

    的 Cadence 授權相關證明 可以通過客服,或者前往 全志在線開發者論壇 發帖詢問,有相關的專人對接。 Linux 環境搭建XCC 安裝把 XCC 工具鏈壓縮包放在目錄下: code"
    發表于 12-28 17:21