哈哈哈哈哈操欧洲电影,久草网在线,亚洲久久熟女熟妇视频,麻豆精品色,久久福利在线视频,日韩中文字幕的,淫乱毛视频一区,亚洲成人一二三,中文人妻日韩精品电影

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

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

3天內不再提示

【潤和軟件DAYU200開發(fā)板體驗】三方庫移植之NAPI開發(fā)[1]—Hello OpenHarmony NAPI

開發(fā)板試用精選 ? 來源:開發(fā)板試用 ? 作者:電子發(fā)燒友論壇 ? 2022-10-12 10:38 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

本文來源電子發(fā)燒友社區(qū),作者:離北況歸, 帖子地址:https://bbs.elecfans.com/jishu_2308792_1_1.html


本文通過一個Hello OpenHarmony NAPI樣例講述了NPAI接口開發(fā)基礎知識。開發(fā)基于最新的OpenHarmony3.2Beta3版本及其對應SDK。標準系統(tǒng)開發(fā)板為潤和軟件dayu200。(附開發(fā)板體驗完整視頻,詳見作者原帖子)

將C/C++ 三方庫移植到OpenHarmony標準系統(tǒng)后,需要通過NAPI框架將其C/C++ 接口轉換成JS/ETS接口給應用層調用。


通過本文您將熟悉

  • 如何注冊NAPI模塊及接口。

  • 如何在ArkUI eTS代碼中調用擴展的NAPI接口。

  • full-SDK的替換。

    什么是NAPI

  • NAPI(Native API)組件是一套對外接口基于Node.js N-API規(guī)范開發(fā)的原生模塊擴展開發(fā)框架。

image.png

  • OpenHarmony 標準系統(tǒng)應用開發(fā)基于ArkUI框架,開發(fā)語言使用JS/eTS。部分業(yè)務場景依賴使用現(xiàn)有的C/C++ 庫,或為了獲取更高的性能。OpenHarmony提供NAPI機制,用于規(guī)范封裝IO、CPU密集型、OS底層等能力并對外暴露JS接口,通過NAPI實現(xiàn)JS和C/C++代碼的互相訪問.

    • 例如: 鐘祿平和林嘉誠老師在如何在OpenHarmony上使用SeetaFace2人臉識別庫?一文中,重點講解了NAPI接口如何實現(xiàn)OpenCV以及SeetaFace的調用。一句話概括就是,鐘祿平和林嘉誠老師講述了移植了三方庫后通過NAPI將庫的C/C++接口變成JS/ETS接口給應用層調用。
  • OpenHarmony 中的 N-API 定義了由 JS/ETS 語言編寫的代碼和 native 代碼(使用 C/C++ 編寫)交互的方式,由 Node.js N-API 框架擴展而來。

  • N-API:Native Application Programming Interface(本地應用程序接接口)
  • 什么是Node.js N-API 框架
    Node.js N-API為開發(fā)者提供了一套C/C++ API用于開發(fā)Node.js的Native擴展模塊。從Node.js 8.0.0開始,N-API以實驗性特性作為Node.js本身的一部分被引入,并且從Node.js 10.0.0開始正式全面支持N-API。

添加OpenHarmony自定義子系統(tǒng)、組件、模塊

  • 這部分內容涉及三方庫移植,為便于本篇NAPI基礎的學習。筆者在此自定義一個子系統(tǒng)用于開發(fā)NAPI。如在已存在的子系統(tǒng)組件中添加擴展NAPI,則跳過此步。
  • 需要準備好OpenHarmonyBeta3源碼和編譯環(huán)境

添加子系統(tǒng)、組件

直接在OpenHarmony源碼根目錄創(chuàng)建子系統(tǒng)文件夾,取名mysubsys。并在目錄下添加子系統(tǒng)的構建配置文件ohos.build
完整內容如下:

{
  "subsystem": "mysubsys",
  "parts": {
    "hello": {
      "module_list": [
        "http://mysubsys/hello/hellonapi:hellonapi"
      ],
      "inner_kits": [
      ],
      "system_kits": [
      ],
      "test_list": [
      ]
    }
  }
}
  • 另外ohos.build里面不支持加注釋,后面編譯的時候會莫名其妙報錯。別問,問就是筆者踩過坑了。(好像也沒必要加注釋)
    image.png
    需要明白以下知識點:
"subsystem": "mysubsys",
  • subsystem后面的mysubsy是子系統(tǒng)的名稱。
"parts": {
    "hello": {
   }
  }
  • hello是組件名稱,被mysubsys子系統(tǒng)包含
"module_list": [
        "http://mysubsys/hello/hellonapi:hellonapi"
  • hellonapi是模塊名,被hello組件包含。

接著將子系統(tǒng)配置到源碼下buildsubsystem_config.json文件,在該文件中插入如下內容。

"mysubsys": {
    "project": "hmf/mysubsys",
    "path": "mysubsys",
    "name": "mysubsys",
    "dir": ""
  }
  • OpenHarmony系統(tǒng)架構中,子系統(tǒng)是一個邏輯概念,它具體由對應的組件構成。組件是對子系統(tǒng)的進一步拆分,可復用的軟件單元,它包含源碼、配置文件、資源文件和編譯腳本;能獨立構建,以二進制方式集成,具備獨立驗證能力的二進制單元。

本示例按子系統(tǒng)system > 組件part > 組件module 創(chuàng)建了3級目錄

mysubsys                    -- 子系統(tǒng)目錄
├── hello
│   └── hellonapi           -- 組件目錄
│       ├── BUILD.gn
│       └── hellonapi.cpp   -- 組件module目錄
└── ohos.build

源碼實現(xiàn)

最后在組件目錄下中創(chuàng)建代碼文件hellonapi.cpp

完整內容如下:

#include 
#include "napi/native_node_api.h"
#include "napi/native_api.h"

//接口業(yè)務實現(xiàn)C/C++代碼
//std::string 需要引入string頭文件,#include 
static napi_value getHelloString(napi_env env, napi_callback_info info) {
  napi_value result;
  std::string words = "Hello OpenHarmony NAPI";
  NAPI_CALL(env, napi_create_string_utf8(env, words.c_str(), words.length(), &result));
  return result;
}

// napi_addon_register_func
//2.指定模塊注冊對外接口的處理函數(shù),具體擴展的接口在該函數(shù)中聲明
static napi_value registerFunc(napi_env env, napi_value exports)
{
    static napi_property_descriptor desc[] = {
        // 聲明該napi_module對外具體的提供的API
        DECLARE_NAPI_FUNCTION("getHelloString", getHelloString),
    };
    NAPI_CALL(env, napi_define_properties(env, exports, sizeof(desc) / sizeof(desc[0]), desc));
    return exports;
}

// 1.先定義napi_module,指定當前NAPI模塊對應的模塊名
//以及模塊注冊對外接口的處理函數(shù),具體擴展的接口在該函數(shù)中聲明
// nm_modname: 模塊名稱,對應eTS代碼為import nm_modname from '@ohos.ohos_shared_library_name'
//示例對應eTS代碼為:import hellonapi from '@ohos.hellonapi'
static napi_module hellonapiModule = {
    .nm_version = 1,
    .nm_flags = 0,
    .nm_filename = nullptr,
    .nm_register_func = registerFunc, // 模塊對外接口注冊函數(shù)
    .nm_modname = "hellonapi",  // 自定義模塊名
    .nm_priv = ((void*)0),
    .reserved = { 0 },
};

//3.模塊定義好后,調用NAPI提供的模塊注冊函數(shù)napi_module_register(napi_module* mod)函數(shù)注冊到系統(tǒng)中。
// register module,設備啟動時自動調用此constructor函數(shù),把模塊定義的模塊注冊到系統(tǒng)中
extern "C" __attribute__((constructor)) void hellonapiModuleRegister()
{
    napi_module_register(&hellonapiModule);
}

代碼解析如下:

接口業(yè)務實現(xiàn)C/C++代碼

// std::string 需要引入string頭文件,#include 
static napi_value getHelloString(napi_env env, napi_callback_info info) {
  napi_value result;
  std::string words = "Hello OpenHarmony NAPI";
  NAPI_CALL(env, napi_create_string_utf8(env, words.c_str(), words.length(), &result));
  return result;
}

添加NAPI接口頭文件

NAPI提供了提供了一系列接口函數(shù),聲明包含如下2個頭文件中,先添加這2個頭文件到hellonapi.cpp

#include "napi/native_api.h"
#include "napi/native_node_api.h"
  • native_api.h和native_node_api.h這兩個頭文件
    • 在OpenHarmony-3.1-release源碼下是在//foundation/ace/napi/interfaces/kits目錄下
    • 在3.2beta3版本中分別在//foundation/arkui/napi/interfaces/kits和//foundation/arkui/napi/interfaces/inner_api目錄下了。

image.png

注冊NAPI模塊、添加接口聲明

定義的hellonapi模塊,其對應結構體為napi_module。

  • 指定當前NAPI模塊對應的模塊名以及模塊注冊對外接口的處理函數(shù),具體擴展的接口在該函數(shù)中聲明。
// 定義napi_module
// nm_modname: 模塊名稱,對應eTS代碼為import nm_modname from '@ohos.ohos_shared_library_name'
// 示例對應eTS代碼為:import hellonapi from '@ohos.hellonapi'
static napi_module hellonapiModule = {
    .nm_version = 1,
    .nm_flags = 0,
    .nm_filename = nullptr,
    .nm_register_func = registerFunc, // 模塊對外接口注冊函數(shù)
    .nm_modname = "hellonapi",  // 自定義模塊名
    .nm_priv = ((void*)0),
    .reserved = { 0 },
};
  • NAPI提供DECLARE_NAPI_FUNCTION(name, func)函數(shù)用于聲明api,傳入名稱和其他實現(xiàn)函數(shù)。在registerFunc函數(shù)中添加DECLARE_NAPI_FUNCTION,本例添加了一個getString接口。
  • 模塊定義好后,調用NAPI提供的模塊注冊函數(shù)napi_module_register(napi_module* mod)函數(shù)注冊到系統(tǒng)中。
// napi_addon_register_func
static napi_value registerFunc(napi_env env, napi_value exports)
{
    static napi_property_descriptor desc[] = {
        // 聲明該napi_module對外具體的提供的API
        DECLARE_NAPI_FUNCTION("getHelloString", getHelloString),
    };
    NAPI_CALL(env, napi_define_properties(env, exports, sizeof(desc) / sizeof(desc[0]), desc));
    return exports;
}

自定義子系統(tǒng)構建

hellonapi編譯gn化,新增gn工程構建腳本。

在模塊hellonapi目錄下新建BUILD.gn文件,內容如下:

gn文件支持注釋,以#開頭

import("http://build/ohos.gni")

#ohos_shared_library()中的hellonapi決定了生成動態(tài)庫的名稱,增量編譯階段生成動態(tài)庫libhellonapi.z.so 

ohos_shared_library("hellonapi") {   

   include_dirs = [
   #NAPI頭文件目錄
   "http://foundation/arkui/napi/interfaces/kits", 

   #根據(jù)增量編譯階段報錯添加的頭文件目錄
   "http://foundation/arkui/napi/interfaces/inner_api", 
   "http://third_party/node/src"                       
  ]

   #根據(jù)增量編譯時clang編譯器報警,添加的cflag
  cflags_cc = [ 
   #編譯時報錯提示"-Werror",則加上"-Wno-error"
          "-Wno-error", 
   #編譯時報錯提示"-Wunused-function",則加上"-Wno-unused-function"
          "-Wno-unused-function", 
  ]
   
  #編譯需要的源文件
  sources = [
    "hellonapi.cpp"
  ]

  #指定編譯依賴libace_napi.z.so動態(tài)庫
  deps = [ "http://foundation/arkui/napi:ace_napi" ] 

  #指定庫生成的路徑
  #libhellonapi.z.so會安裝在rk3568開發(fā)板的system/lib/module目錄下
  relative_install_dir = "module"
  
  #子系統(tǒng)名稱是mysubsys
  subsystem_name = "mysubsys"
  
  #組件名稱是hello
  part_name = "hello"
}

修改產品配置

將組件添加到需要的產品配置文件,源碼目錄下的productdefine/common/products/ohos-arm64.json。

  • 插入位置任意,但要注意行尾的逗號,確保格式json文件格式正確。
"parts":{
    ...
    "mysubsys:hello":{},
    ...
  }
  • mysubsys是本示例自定義的子系統(tǒng)名稱
  • hello是自定義子系統(tǒng)下的組件名稱
  • parts格式如下:
"parts":{
        "部件所屬子系統(tǒng)名:部件名":{}
    }

修改build/subsystem_config.json

新增子系統(tǒng)定義。

  • subsystem_config.json文件定義了有哪些子系統(tǒng)以及這些子系統(tǒng)所在文件夾路徑,添加子系統(tǒng)時需要說明子系統(tǒng)path與name,分別表示子系統(tǒng)路徑和子系統(tǒng)名。

注意json文件也不支持注釋?。。?/p>

"mysubsys": {
    "project": "hmf/mysubsys",
    "path": "mysubsys",
    "name": "mysubsys"
}

修改vendor/hihope/rk3568/config.json文件

將mysubsys子系統(tǒng)添加至rk3568開發(fā)板,在vendor目錄下新增產品的定義。

{
      "subsystem": "mysubsys",
      "components": [
        {
          "component": "hello",
          "features": []
        }
      ]
    }

編譯燒錄

先進行增量編譯出子系統(tǒng)的動態(tài)庫,增量編譯沒有報錯后。再全量編譯出鏡像,將其燒錄到開發(fā)板上

  • 增量編譯命令
./build.sh --product-name rk3568 --ccache --build-target=hellonapi --target-cpu arm64

image.png

  • 全量編譯和燒錄
    這部分的內容不重復敘述,大家可以參考社區(qū)文章。

鏡像文件在源碼目錄下位置如下:
image.png

調用接口

full-SDK替換(可選)

從OpenHarmony 3.2 Beta2起,SDK會同時提供Public SDK和Full SDK。通過DevEco Studio默認獲取的SDK為Public SDK。
兩者差異如下

  • Public SDK
    • 面向應用開發(fā)者提供,不包含需要使用系統(tǒng)權限的系統(tǒng)接口。通過DevEco Studio默認獲取的SDK為Public SDK。
  • Full SDK
    • 面向OEM廠商提供,包含了需要使用系統(tǒng)權限的系統(tǒng)接口。使用Full SDK時需要手動從鏡像站點獲取,并在DevEco Studio中替換

筆者使用的DevEco Studio版本為3.0.0.993,即DevEco Studio 3.0。API為API9。
image.png
image.png

full-SDK替換請參考官方文檔:full-SDK替換指南

若提示找不到npm,需要配置一下環(huán)境變量,將以下路徑添加到環(huán)境變量中即可
image.png

image.png

D:DevEco Studioohossdketsbuild-toolsets-loader

image.png

創(chuàng)建OpenHarmony標準應用

新建項目,選擇OpenHarmony。
image.png
compile sdk選擇9,其他保持默認即可。
image.png

插一句題外話,3.1release版本發(fā)布的時候。華為是把DevEco Studio分成了OpenHarmony和HarmonyOS兩個版本的,現(xiàn)在又合并到一起了。

image.png
image.png

調用接口

  • 調用方式和ArkUI框架提供的API一樣,先import引入擴展的NAPI模塊,后直接調用。

image.png

index.ets內容如下:

import prompt from '@system.prompt'

// 引入擴展的NAPI模塊 
// 在hellonapi.cpp文件中定義nm_modname(模塊名稱)為hellonapi
// 在BUILD.gn文件中定義ohos_shared_library結構體名稱為hellonapi
// 所以是import hellonapi from '@ohos.hellonapi'
import hellonapi from '@ohos.hellonapi'


@Entry
@Component
struct HelloNAPI {
  build() {
    Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Center, justifyContent: FlexAlign.Center }) {
      Button("NAPI: hellonapi.getHelloString()").margin(10).fontSize(24).onClick(() => {
        // 調用getHelloString接口
        let strFromNAPI = hellonapi.getHelloString()
        prompt.showToast({ message: strFromNAPI })
      })
    }
    .width('100%')
    .height('100%')
  }
}

然后選擇自動簽名
image.png

image.png

將應用安裝到dayu200開發(fā)板上
image.png

運行效果如下:
動畫2.gif

  • 也可以參考其他模塊的.d.ts創(chuàng)建擴展模塊@ohos.hellonapi.d.ts定義文件,放到IDE安裝OpenHarmony SDK的目錄路徑ohossdkets3.2.7.5api下。
    • .d.ts文件的命名為@ohos.ohos_shared_library_name.d.ts,ohos_shared_library為BUID.gn文件中定義的動態(tài)庫名稱image.png

@ohos.hellonapi.d.ts內容如下:

declare namespace hellonapi {
	function getHelloString(): string;
    /**
     * 
     *
     * @since 9
     * @syscap SystemCapability.HiviewDFX.HiAppEvent
     */

}
export default hellonapi;
  • 其中@syscap SystemCapability.HiviewDFX.HiAppEvent語句在.d.ts文件中一定要添加,否則IDE還是會報錯找不到該文件。
  • 其中declare namespace hellonapi的hellonapi是BUILD.gn中的定義的ohos_shared_library_name。
  • 其中function getHelloString(): string;中的getHelloString()是hellonapi.cpp文件中指定的模塊注冊對外接口的處理函數(shù)

IDE問題掃描如下:
image.png

如果不新建@ohos.hellonapi.d.ts放在sdkets3.2.7.5api,則IDE會報錯
image.png

標準應用編譯不是強依賴OpenHarmony SDK,所以可忽略IDE中告警,直接編譯打包hap。但是有的時候IDE會提示找不到@ohos.hellonapi.d.ts,然后有小概率的機會無法安裝hap。這個時候就要參考ohossdkets3.2.7.5api下的.d.ts文件編寫@ohos.hellonapi.d.ts了。

知識點附送

Native API中支持的標準庫

表1OpenHarmony支持的標準庫

名稱 簡介
標準C庫 libc、libm、libdl組合實現(xiàn)C11標準C庫。
標準C++庫 libc++是C++標準庫的一種實現(xiàn)。
OpenSL ES OpenSL ES是一個嵌入式跨平臺的音頻處理庫。
zlib Zlib是基于C/C++語言實現(xiàn)的一個通用的數(shù)據(jù)壓縮庫。
EGL EGL是渲染API與底層原生窗口系統(tǒng)之間的一種標準的軟件接口。
OpenGL ES OpenGL ES是一個嵌入式跨平臺的為 3D 圖形處理硬件指定標準的軟件接口。
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • dayu200
    +關注

    關注

    1

    文章

    26

    瀏覽量

    1929
  • 潤和軟件
    +關注

    關注

    1

    文章

    418

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    迅為驅動開發(fā)實戰(zhàn):iTOP-RK3568開發(fā)板eDP屏幕移植全攻略

    迅為驅動開發(fā)實戰(zhàn):iTOP-RK3568開發(fā)板eDP屏幕移植全攻略
    的頭像 發(fā)表于 12-30 15:42 ?1206次閱讀
    迅為驅動<b class='flag-5'>開發(fā)</b>實戰(zhàn):iTOP-RK3568<b class='flag-5'>開發(fā)板</b>eDP屏幕<b class='flag-5'>移植</b>全攻略

    DAYU200開發(fā)板原理圖】DAYU200開發(fā)板沒有完整原理圖嗎?MIPI DSI雙屏同顯怎么配置?

    1.DAYU200開發(fā)板沒有完整原理圖,無法完成LCD+觸摸屏切換到MIPI DSI TX1接口,也無法完成MIPI DSI0和DSI1的雙屏同顯/異顯輸出。 2.MIPI DSI0和
    發(fā)表于 11-06 15:43

    【精選資料】開發(fā)板測評大賽作品合集!

    電子發(fā)燒友攜手16家生態(tài)廠商發(fā)起開發(fā)板測評大賽,設OpenHarmony、RISC-V、Rockchip大賽道,共計21款、160+塊開發(fā)板,通過評測
    的頭像 發(fā)表于 09-23 08:09 ?1357次閱讀
    【精選資料】<b class='flag-5'>開發(fā)板</b>測評大賽作品合集!

    【作品合集】開鴻HH-SCDAYU800A開發(fā)板測評

    HH-SCDAYU800A開發(fā)板試用體驗】Hello World 【開鴻HH-SCDAYU800A開發(fā)板試用體驗】DAYU800
    發(fā)表于 09-19 14:09

    RK3506開發(fā)板Linux開發(fā)板極致性價比

    RK3506開發(fā)板Linux開發(fā)板極致性價比選瑞芯微RK3506開發(fā)板,3核Cortex-A7@1.5GHz+Cortex-M0,Linux+RT-Thread系統(tǒng)支持,128MB超
    的頭像 發(fā)表于 09-11 16:26 ?3814次閱讀
    RK3506<b class='flag-5'>開發(fā)板</b>Linux<b class='flag-5'>開發(fā)板</b>極致性價比<b class='flag-5'>之</b>選

    請問各位dayu200是不是不支持燒錄64位的OpenHarmony

    我自己編譯了OpenHarmony5.0.2的鏡像,發(fā)現(xiàn)如果使用arm64參數(shù)編譯為64位版本,燒錄后卡在開機動畫無法開機,如果編譯為32位就可以正常。請問dayu200不支持64位系統(tǒng)嗎?
    發(fā)表于 08-16 17:39

    開鴻HH-SCDAYU800A開發(fā)板試用體驗】開箱評測報告

    Studio 鴻蒙HDC工具開發(fā)資料網: DAYU800開發(fā)套件 大禹系列HH-SCDAYU800開發(fā)板套件TH1520
    發(fā)表于 07-23 09:21

    開鴻HH-SCDAYU800A開發(fā)板試用體驗】開鴻HH-SCDAYU800A開發(fā)板

    (四)開鴻HH-SCDAYU800A開發(fā)板DevEco Studio IDE開發(fā)環(huán)境介紹 1.DevEco Studio集成開發(fā)環(huán)境 H
    發(fā)表于 07-07 10:40

    開鴻HH-SCDAYU800A開發(fā)板試用體驗】開鴻HH-SCDAYU800A開發(fā)板(二)

    開鴻HH-SCDAYU800A開發(fā)板固件燒錄 注意:本燒錄方法僅可用于Windows10及之前版本。 1.安裝USB驅動 1.1下載
    發(fā)表于 07-02 09:30

    開鴻HH-SCDAYU800A開發(fā)板試用體驗】Hello World

    wlan hdc 有了hdc.exe可以方便的通過以太網發(fā)布應用到開發(fā)板上運行。開發(fā)板自帶系統(tǒng)中有wlan hdc軟件,打開可以看到ip和端口號,后續(xù)要用到。 首先要確保開發(fā)板和電腦在
    發(fā)表于 07-01 00:52

    貢獻 OpenHarmony 關鍵配置

    # 貢獻 OpenHarmony 關鍵配置 #自研框架#ArkUI-X#三方框架#OpenHarmony#HarmonyOS ## 創(chuàng)建第三方
    發(fā)表于 05-28 13:46

    貝啟BQ3568HM 開發(fā)板被選用為 OpenHarmony 明星開發(fā)板

    經開放原子開源基金會OpenHarmony社區(qū)官方測評評選,貝啟科技BQ3568HM開源鴻蒙開發(fā)板被正式選用為OpenHarmony明星開發(fā)板。BQ3568HM開源鴻蒙
    的頭像 發(fā)表于 05-25 00:22 ?1671次閱讀
    貝啟BQ3568HM <b class='flag-5'>開發(fā)板</b>被選用為 <b class='flag-5'>OpenHarmony</b> 明星<b class='flag-5'>開發(fā)板</b>

    基于小凌派RK2206開發(fā)板OpenHarmony如何使用IoT接口控制FLASH外設

    1、實驗簡介本實驗將演示如何在小凌派-RK2206開發(fā)板上使用IOT的FLASH接口,進行FLASH編程開發(fā)。例程將創(chuàng)建一個任務,實現(xiàn)FLASH讀寫操作。例程源代碼:https
    的頭像 發(fā)表于 04-22 14:49 ?1062次閱讀
    基于小凌派RK2206<b class='flag-5'>開發(fā)板</b>:<b class='flag-5'>OpenHarmony</b>如何使用IoT接口控制FLASH外設

    基于小凌派RK2206開發(fā)板OpenHarmony如何使用IoT接口控制UART外設

    1、實驗簡介本實驗將演示如何在小凌派-RK2206開發(fā)板上使用IOT的UART接口,進行UART編程開發(fā)。例程將創(chuàng)建一個任務,通過配置UART引腳,實現(xiàn)UART讀寫操作。例程源代碼:
    的頭像 發(fā)表于 04-22 14:22 ?1261次閱讀
    基于小凌派RK2206<b class='flag-5'>開發(fā)板</b>:<b class='flag-5'>OpenHarmony</b>如何使用IoT接口控制UART外設

    基于小凌派RK2206開發(fā)板OpenHarmony如何使用IoT接口控制GPIO中斷

    1、實驗簡介本實驗將演示如何在小凌派-RK2206開發(fā)板上使用IOT的GPIO中斷模式,進行GPIO編程開發(fā)。例程將創(chuàng)建一個任務,通過配置GPIO引腳為中斷模式,實現(xiàn)GPIO中斷操作
    的頭像 發(fā)表于 04-21 10:39 ?1240次閱讀
    基于小凌派RK2206<b class='flag-5'>開發(fā)板</b>:<b class='flag-5'>OpenHarmony</b>如何使用IoT接口控制GPIO中斷
    太和县| 广昌县| 白朗县| 炉霍县| 白朗县| 云浮市| 蒙城县| 永济市| 永靖县| 广东省| 嘉定区| 西盟| 盐亭县| 鱼台县| 梨树县| 天水市| 宜州市| 象山县| 靖边县| 孟津县| 房产| 龙门县| 繁峙县| 贺州市| 涞源县| 耒阳市| 油尖旺区| 石首市| 广平县| 安阳县| 商南县| 建德市| 兴文县| 栾城县| 通城县| 类乌齐县| 阳朔县| 玛沁县| 吉林省| 张家界市| 博客|