chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

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

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

觸覺智能RK3576開發(fā)板OpenHarmony開源鴻蒙系統(tǒng)USB控制傳輸功能示例

觸覺智能 ? 2025-09-30 16:31 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

本文介紹OpenHarmony開源鴻蒙系統(tǒng)USB控制傳輸功能實(shí)現(xiàn)及相關(guān)代碼示例,基于觸覺智能RK3576開發(fā)板Purple Pi OH2演示。

OpenHarmony的USB通信介紹

實(shí)現(xiàn)OpenHarmony開源鴻蒙設(shè)備與外部USB設(shè)備之間的連接管理、數(shù)據(jù)收發(fā)及設(shè)備信息交互,支持對USB 設(shè)備的枚舉、配置及數(shù)據(jù)傳輸控制,適用于各類USB接口進(jìn)行設(shè)備通信的場景。如AHD高清攝像頭、密碼鍵盤、檢測模塊等。

USB控制傳輸主要用于主機(jī)(Host)和設(shè)備(Device)進(jìn)行設(shè)備狀態(tài)的獲取和設(shè)置,進(jìn)行設(shè)備屬性狀態(tài)的的控制。根據(jù)設(shè)備支持的端點(diǎn)類型支持控制傳輸讀和寫。

示例環(huán)境:

1、僅支持開源鴻蒙OpenHarmony L2標(biāo)準(zhǔn)系統(tǒng)上運(yùn)行;

2、本示例已適配 API version 12 版本 SDK(兼容 API version 8 及以上版本);

3、本示例為Stage模型,需要使用DevEco Studio 5.0.2 Release及以上版本才可編譯運(yùn)行。;

核心功能模塊實(shí)現(xiàn)邏輯

USB通信流程整體可分為3塊組成:設(shè)備枚舉→設(shè)備連接→數(shù)據(jù)傳輸/接收,流程圖示:

wKgZPGjblNuARTImAANnBoKUGwo596.png

各流程示例代碼,請繼續(xù)瀏覽下文。

設(shè)備枚舉模塊

負(fù)責(zé)掃描并識別當(dāng)前連接的 USB 設(shè)備,獲取設(shè)備的基本信息(如設(shè)備ID、廠商 ID、產(chǎn)品 ID、接口類型等),基于 OpenHarmony 的 USB 服務(wù)接口實(shí)現(xiàn)設(shè)備列表的動態(tài)更新。代碼示例:

// 獲取USB設(shè)備列表 private getUsbDevices(): void { try { this.deviceList = usbManager.getDevices(); if (this.deviceList.length === 0) { this.log = '未檢測到USB設(shè)備'; } else { this.log = `找到 ${this.deviceList.length} 個USB設(shè)備`; } this.selectedDeviceIndex = -1; this.interfaces = []; this.endpoints = []; this.selectedInterfaceIndex = -1; this.selectedEndpointIndex = -1; this.isDeviceSelected = false; this.isReceiving = false; } catch (error) { this.log = `獲取設(shè)備列表失敗: ${error}`; console.error("獲取USB設(shè)備列表異常: ", error); } }

連接管理模塊

處理 USB 設(shè)備的連接與斷開邏輯,包括權(quán)限校驗(yàn)、設(shè)備掛載狀態(tài)監(jiān)測及連接狀態(tài)回調(diào)通知,確保設(shè)備連接的穩(wěn)定性。代碼示例:

// 選擇設(shè)備 private async selectDevice(index: number): Promise { this.selectedDeviceIndex = index; this.selectedInterfaceIndex = -1; this.selectedEndpointIndex = -1; this.interfaces = []; this.endpoints = []; this.isDeviceSelected = false; this.isReceiving = false; try { let deviceName: string = this.deviceList[index].name;

// 申請操作指定設(shè)備的權(quán)限 let hasRight: boolean = await usbManager.requestRight(deviceName); console.info("usb device request right result: " + hasRight); if (!hasRight) { this.log = 'USB設(shè)備權(quán)限獲取失敗'; return; }


數(shù)據(jù)傳輸模塊

實(shí)現(xiàn)與 USB 設(shè)備的雙向數(shù)據(jù)傳輸,支持批量傳輸。主機(jī)→USB 設(shè)備進(jìn)行數(shù)據(jù)發(fā)送,適用于向 USB 設(shè)備發(fā)送配置命令、控制參數(shù)等場景,需選擇 OUT方向端點(diǎn)(端點(diǎn)地址 direction=0),流程包括:解析用戶輸入的16進(jìn)制數(shù)據(jù)、建立設(shè)備通信管道、聲明目標(biāo)接口、調(diào)用 usbManager.bulkTransfer() 發(fā)送數(shù)據(jù)。代碼示例

// 發(fā)送數(shù)據(jù)到設(shè)備 private async sendDataToDevice(): Promise { if (this.selectedDeviceIndex === -1 || this.selectedInterfaceIndex === -1 || this.selectedEndpointIndex === -1) { this.log = '請先選擇設(shè)備、接口和端點(diǎn)'; this.showSendDataDialog = false; return; } if (!this.sendDataContent.trim()) { this.log = '發(fā)送數(shù)據(jù)不能為空'; return; }

數(shù)據(jù)接收模塊

USB 設(shè)備→主機(jī)進(jìn)行數(shù)據(jù)發(fā)送,適用于從 USB 設(shè)備獲取狀態(tài)數(shù)據(jù)、采集數(shù)據(jù)等場景,需選擇 IN 方向端點(diǎn)(端點(diǎn)地址 direction=0x80),流程包括:建立設(shè)備通信管道、聲明目標(biāo)接口、循環(huán)調(diào)用 usbManager.bulkTransfer() 讀取數(shù)據(jù)、解析數(shù)據(jù)為十六進(jìn)制格式并展示。代碼示例:

// 開始接收數(shù)據(jù) private async startReceiveData(): Promise { if ( this.selectedDeviceIndex === -1 || this.selectedInterfaceIndex === -1 || this.selectedEndpointIndex === -1) { this.log = '請先選擇設(shè)備、接口和端點(diǎn)'; return ; }

更多代碼示例,請關(guān)注深圳觸覺智能電子發(fā)燒友

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

    關(guān)注

    60

    文章

    8319

    瀏覽量

    278986
  • 外設(shè)
    +關(guān)注

    關(guān)注

    0

    文章

    43

    瀏覽量

    11999
  • 鴻蒙開發(fā)板
    +關(guān)注

    關(guān)注

    1

    文章

    30

    瀏覽量

    4761
  • OpenHarmony
    +關(guān)注

    關(guān)注

    31

    文章

    3891

    瀏覽量

    20153
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    基于RK3576開發(fā)板的WDT看門狗使用說明

    RK3576開發(fā)板的WDT使用說明
    的頭像 發(fā)表于 05-06 17:15 ?886次閱讀
    基于<b class='flag-5'>RK3576</b><b class='flag-5'>開發(fā)板</b>的WDT看門狗使用說明

    基于RK3576開發(fā)板的TF卡槽使用說明

    RK3576開發(fā)板使用TF卡槽
    的頭像 發(fā)表于 05-07 09:24 ?1261次閱讀
    基于<b class='flag-5'>RK3576</b><b class='flag-5'>開發(fā)板</b>的TF卡槽使用說明

    基于RK3576開發(fā)板的PWN使用說明

    RK3576開發(fā)板使用PWN教程及Demo
    的頭像 發(fā)表于 05-07 14:07 ?1673次閱讀
    基于<b class='flag-5'>RK3576</b><b class='flag-5'>開發(fā)板</b>的PWN使用說明

    基于RK3576開發(fā)板的RTC使用說明

    文章主要展示RK3576開發(fā)板的RTC信息和快速上手例程
    的頭像 發(fā)表于 05-07 15:04 ?1430次閱讀
    基于<b class='flag-5'>RK3576</b><b class='flag-5'>開發(fā)板</b>的RTC使用說明

    基于RK3576開發(fā)板的人臉識別算法

    RK3576開發(fā)板展示人臉識別算法例程和API說明
    的頭像 發(fā)表于 05-07 16:48 ?2283次閱讀
    基于<b class='flag-5'>RK3576</b><b class='flag-5'>開發(fā)板</b>的人臉識別算法

    【米爾RK3576開發(fā)板評測】+項(xiàng)目名稱【米爾RK3576開發(fā)板評測】一個視頻和你共同認(rèn)識一下米爾RK3576開發(fā)板

    的6TOPS算力開發(fā)板之一,已支持最新安卓14系統(tǒng)。 總體來說米爾RK3576開發(fā)板是值得大家花時間和精力去研究的一塊非常不錯的開發(fā)板
    發(fā)表于 12-18 20:50

    【作品合集】米爾RK3576開發(fā)板測評

    米爾RK3576開發(fā)板測評作品合集 產(chǎn)品介紹: RK3576 是瑞芯微一款面向AI市場推出的高性能處理器,它配備了四核Cortex-A72和四 核Cortex-A53 的 CPU,集成了6TOPS
    發(fā)表于 09-11 10:19

    米爾RK3576開發(fā)板特惠活動!

    近日,米爾電子發(fā)布基于瑞芯微RK3576核心開發(fā)板,RK3576作為國產(chǎn)熱門處理器,其高性能數(shù)據(jù)處理能力、領(lǐng)先的AI智能分析、強(qiáng)大的擴(kuò)展
    的頭像 發(fā)表于 11-12 01:00 ?1704次閱讀
    米爾<b class='flag-5'>RK3576</b><b class='flag-5'>開發(fā)板</b>特惠活動!

    如何在開源鴻蒙OpenHarmony開啟SELinux模式?RK3566鴻蒙開發(fā)板演示

    本文介紹開源鴻蒙OpenHarmony系統(tǒng)下,開啟/關(guān)閉SELinux權(quán)限的方法,觸覺智能Pur
    的頭像 發(fā)表于 11-18 19:03 ?1127次閱讀
    如何在<b class='flag-5'>開源</b><b class='flag-5'>鴻蒙</b><b class='flag-5'>OpenHarmony</b>開啟SELinux模式?<b class='flag-5'>RK</b>3566<b class='flag-5'>鴻蒙</b><b class='flag-5'>開發(fā)板</b>演示

    OpenHarmony屬性信息怎么修改?觸覺智能RK3566鴻蒙開發(fā)板來演示

    本文介紹開源鴻蒙OpenHarmony系統(tǒng)下,修改產(chǎn)品屬性信息的方法,觸覺智能Purple Pi
    的頭像 發(fā)表于 11-27 09:31 ?941次閱讀
    <b class='flag-5'>OpenHarmony</b>屬性信息怎么修改?<b class='flag-5'>觸覺</b><b class='flag-5'>智能</b><b class='flag-5'>RK</b>3566<b class='flag-5'>鴻蒙</b><b class='flag-5'>開發(fā)板</b>來演示

    OpenHarmony怎么修改DPI密度值?觸覺智能RK3566鴻蒙開發(fā)板演示

    開源鴻蒙OpenHarmony系統(tǒng)下,修改DPI密度值的方法,觸覺智能Purple Pi OH
    的頭像 發(fā)表于 12-24 11:46 ?955次閱讀
    <b class='flag-5'>OpenHarmony</b>怎么修改DPI密度值?<b class='flag-5'>觸覺</b><b class='flag-5'>智能</b><b class='flag-5'>RK</b>3566<b class='flag-5'>鴻蒙</b><b class='flag-5'>開發(fā)板</b>演示

    Linux系統(tǒng)更換開機(jī)logo方法教程,觸覺智能RK3562開發(fā)板演示

    本文介紹Linux系統(tǒng)更換開機(jī)logo方法教程,通用RK3566、RK3568、RK3588、RK3576
    的頭像 發(fā)表于 01-06 10:53 ?1071次閱讀
    Linux<b class='flag-5'>系統(tǒng)</b>更換開機(jī)logo方法教程,<b class='flag-5'>觸覺</b><b class='flag-5'>智能</b><b class='flag-5'>RK</b>3562<b class='flag-5'>開發(fā)板</b>演示

    迅為RK3576開發(fā)板核心與底板接口硬件介紹

    迅為RK3576開發(fā)板核心與底板接口硬件介紹
    的頭像 發(fā)表于 01-14 15:15 ?2010次閱讀
    迅為<b class='flag-5'>RK3576</b><b class='flag-5'>開發(fā)板</b>核心<b class='flag-5'>板</b>與底板接口硬件介紹

    基于RK3576開發(fā)板的MIPI-DSI使用

    MIPI DSI接口是由MIPI聯(lián)盟下的Display工作組指定的DSI(Display Serial Interface)的接口標(biāo)準(zhǔn)。rk3576開發(fā)板使用mipi-dsi教程
    的頭像 發(fā)表于 05-06 16:11 ?735次閱讀
    基于<b class='flag-5'>RK3576</b><b class='flag-5'>開發(fā)板</b>的MIPI-DSI使用

    迅為RK3576核心高算力AI開發(fā)板開啟智能應(yīng)用新時代

    迅為RK3576核心高算力AI開發(fā)板開啟智能應(yīng)用新時代
    的頭像 發(fā)表于 06-10 14:13 ?1224次閱讀
    迅為<b class='flag-5'>RK3576</b>核心<b class='flag-5'>板</b>高算力AI<b class='flag-5'>開發(fā)板</b>開啟<b class='flag-5'>智能</b>應(yīng)用新時代