国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

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

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

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

OpenHarmony3.0上編譯C控制Hi3516開發(fā)板的LED閃爍

OpenHarmony技術(shù)社區(qū) ? 來源:鴻蒙技術(shù)社區(qū) ? 作者:亮子力 ? 2021-09-28 09:42 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

OpenHarmony 分為輕量系統(tǒng)、小型系統(tǒng)、標(biāo)準(zhǔn)系統(tǒng),目前對(duì)應(yīng) LiteOS-M、LiteOS-A、Linux 內(nèi)核。但好像并沒有說一定是按照使用內(nèi)核來劃分。我們這里姑且先這么區(qū)分。

本文使用的是比較新的 OpenHarmony 3.0 LTS 版本,Linux 內(nèi)核,編譯標(biāo)準(zhǔn)系統(tǒng)。

官方文檔已經(jīng)說明了,如何使用 DevEco Studio 開發(fā) hap 包,并運(yùn)行在開發(fā)板,但是 ACE 框架能力有限。

設(shè)備硬件開發(fā)還是需要 C,所以這篇文章,將在標(biāo)準(zhǔn)系統(tǒng)下編譯 C 控制 Hi3516 開發(fā)板的 LED 閃爍。

環(huán)境準(zhǔn)備

3.0 源碼下載:

repo init -u https://gitee.com/openharmony/manifest.git -b OpenHarmony-3.0-LTS --no-repo-verify

repo sync -c

repo forall -c ‘git lfs pull’

區(qū)別于 2.0 需要安裝 ruby,其他基本都一樣。

sudo apt-get install ruby-full

編譯命令:

build/prebuilts_download.sh

。/build.sh --product-name Hi3516DV300

編寫 helloworld.c

在 applicationsstandard 目錄下新建一個(gè) app 目錄來存放 .c 的業(yè)務(wù)代碼。

比如 applicationsstandardapphelloworld.c 內(nèi)容容下:

#include 《stdio.h》int main(){

printf(“Hello world.

”);

return 0;

}

然后在當(dāng)前目錄新建編譯腳本 BUILD.gn 內(nèi)容如下:

import(“//build/ohos.gni”)

import(“//drivers/adapter/uhdf2/uhdf.gni”)

ohos_executable(“helloworld”) {

sources = [

“helloworld.c”

subsystem_name = “applications”

part_name = “prebuilt_hap”

}

然后添加到編譯框架 applicationsstandardhapohos.build 增加如下內(nèi)容。

“//applications/standard/app:helloworld”

最后執(zhí)行編譯命令即可,開發(fā)板使用的是 Hi3516,在不指定 out 目錄時(shí),缺省生成在 /system/lib64 或 /system/lib 下。

6d1eed6c-1fc1-11ec-82a8-dac502259ad0.png

點(diǎn)亮開發(fā)板 LED

能打印 helloworld 說明環(huán)境是沒問題的,接下來嘗試點(diǎn)亮開發(fā)板的 LED。查看 Hi3516DV300 原理圖:

6dcc264e-1fc1-11ec-82a8-dac502259ad0.png

6e664ac6-1fc1-11ec-82a8-dac502259ad0.png

Hi3516DV300 共有 4 層板,由原理圖可知:最上層板的紅外補(bǔ)光燈接在 GPIO5_1,綠色 LED 指示燈在 GPIO2_3,核心板的紅色 LED 在 GPIO3_4。

接下來參考 OpenHarmony GPIO 驅(qū)動(dòng)說明:

https://gitee.com/openharmony/docs/blob/master/zh-cn/device-dev/driver/driver-platform-gpio-des.md

確定GPIO管腳號(hào):不同SOC芯片由于其GPIO控制器型號(hào)、參數(shù)、以及控制器驅(qū)動(dòng)的不同,GPIO管腳號(hào)的換算方式不一樣。

①Hi3516DV300:控制器管理 12 組 GPIO 管腳,每組 8 個(gè)。

GPIO 號(hào) = GPIO 組索引 (0~11) * 每組 GPIO 管腳數(shù)(8) + 組內(nèi)偏移

舉例:GPIO10_3 的 GPIO 號(hào) = 10 * 8 + 3 = 83。

②Hi3518EV300:控制器管理 10 組 GPIO 管腳,每組 10 個(gè)。

GPIO 號(hào) = GPIO 組索引 (0~9) * 每組 GPIO 管腳數(shù)(10) + 組內(nèi)偏移

舉例:GPIO7_3 的 GPIO 管腳號(hào) = 7 * 10 + 3 = 73

由此可以得出:

GPIO5_1 = 5 * 8 + 1;

GPIO2_3 = 2 * 8 + 3;

GPIO3_4 = 3 * 8 + 4;

然后新建 applicationsstandardappledtest.c,內(nèi)容如下:

#include 《stdlib.h》 // standard library 標(biāo)準(zhǔn)庫函數(shù)頭文件#include 《stdio.h》 // standard input output 標(biāo)準(zhǔn)輸入輸出函數(shù)#include 《stdint.h》 // 定義了擴(kuò)展的整數(shù)類型和宏#include 《unistd.h》 // POSIX 系統(tǒng) API 訪問功能的頭文件#include 《fcntl.h》 // unix標(biāo)準(zhǔn)中通用的頭文件 define O_WRONLY and O_RDONLY // #include 《string.h》#define GPIO_DIR_IN “in”#define GPIO_DIR_OUT “out”#define GPIO_VAL_LOW 0#define GPIO_VAL_HIGHT 1int32_t GpioSetDir(uint16_t gpio, char* dir){

char path[100] = {0};

sprintf(path,“echo %d 》 /sys/class/gpio/export”,gpio);

system(path);

printf(“info:%s

”,path);

char direction[100] = {0};

sprintf(direction,“echo %s 》 /sys/class/gpio/gpio%d/direction”,dir,gpio);

system(direction);

printf(“info:%s

”,direction);

return 0;

}

int32_t GpioWrite(uint16_t gpio, uint16_t val)

{

char path[100] = {0};

sprintf(path,“echo %d 》 /sys/class/gpio/gpio%d/value”,val,gpio);

system(path);

printf(“info:%s

”,path);

return 0;

}

int main(){

uint16_t GPIO5_1 = 5 * 8 + 1;

uint16_t GPIO2_3 = 2 * 8 + 3;

uint16_t GPIO3_4 = 3 * 8 + 4;

printf(“LED test start

”);

int32_t ret;

// uint16_t val;

ret = GpioSetDir(GPIO5_1,GPIO_DIR_OUT);

if (ret != 0) {

printf(“GpioSerDir: failed, ret %d

”, ret);

return 0;

}

ret = GpioSetDir(GPIO2_3,GPIO_DIR_OUT);

if (ret != 0) {

printf(“GpioSerDir: failed, ret %d

”, ret);

return 0;

}

ret = GpioSetDir(GPIO3_4,GPIO_DIR_OUT);

if (ret != 0) {

printf(“GpioSerDir: failed, ret %d

”, ret);

return 0;

}

while(1)

{

GpioWrite(GPIO5_1, GPIO_VAL_HIGHT);

usleep(1000000);

GpioWrite(GPIO5_1, GPIO_VAL_LOW);

usleep(1000000);

GpioWrite(GPIO2_3, GPIO_VAL_HIGHT);

usleep(1000000);

GpioWrite(GPIO2_3, GPIO_VAL_LOW);

usleep(1000000);

GpioWrite(GPIO3_4, GPIO_VAL_HIGHT);

usleep(1000000);

GpioWrite(GPIO3_4, GPIO_VAL_LOW);

usleep(1000000);

}

return 0;

}

將業(yè)務(wù)代碼添加到 BUILD.gn:

import(“//build/ohos.gni”)

import(“//drivers/adapter/uhdf2/uhdf.gni”)

ohos_executable(“helloworld”) {

sources = [

“helloworld.c”

subsystem_name = “applications”

part_name = “prebuilt_hap”

}

ohos_executable(“l(fā)edtest”) {

sources = [

“l(fā)edtest.c”

subsystem_name = “applications”

part_name = “prebuilt_hap”

}

applicationsstandardhapohos.build:

“//applications/standard/app:ledtest”

之后將程序燒錄到開發(fā)板,執(zhí)行 。/system/bin/ledtest:

6ee87c1c-1fc1-11ec-82a8-dac502259ad0.png

就可以看到 LED 閃爍起來了。

本來是打算使用鴻蒙的 GPIO 接口來實(shí)現(xiàn)這個(gè)功能的,不過調(diào)試了很久也沒調(diào)通,最后無奈還是用的 system 自己實(shí)現(xiàn)的 GPIO 函數(shù)。

有沒使用 OpenHarmony 的 GPIO 成功的小伙伴可以留言一起交流啊。

責(zé)任編輯:haq

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

    關(guān)注

    243

    文章

    24596

    瀏覽量

    690838
  • 開發(fā)板
    +關(guān)注

    關(guān)注

    26

    文章

    6291

    瀏覽量

    118089
  • 鴻蒙系統(tǒng)
    +關(guān)注

    關(guān)注

    183

    文章

    2642

    瀏覽量

    69846
  • OpenHarmony
    +關(guān)注

    關(guān)注

    33

    文章

    3952

    瀏覽量

    21102

原文標(biāo)題:OpenHarmony 3.0上點(diǎn)亮開發(fā)板LED

文章出處:【微信號(hào):gh_834c4b3d87fe,微信公眾號(hào):OpenHarmony技術(shù)社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    【迅為iTOP-Hi3403開發(fā)板】一站式啟動(dòng)Hi3403 NPU開發(fā):從運(yùn)行例程開始,快速驗(yàn)證AI效能

    【迅為iTOP-Hi3403開發(fā)板】一站式啟動(dòng)Hi3403 NPU開發(fā):從運(yùn)行例程開始,快速驗(yàn)證AI效能
    的頭像 發(fā)表于 02-12 15:59 ?976次閱讀
    【迅為iTOP-<b class='flag-5'>Hi</b>3403<b class='flag-5'>開發(fā)板</b>】一站式啟動(dòng)<b class='flag-5'>Hi</b>3403 NPU<b class='flag-5'>開發(fā)</b>:從運(yùn)行例程開始,快速驗(yàn)證AI效能

    迅為iTOP-Hi3516開發(fā)板驅(qū)動(dòng)開發(fā)資料全面上線,構(gòu)建從入門到精通的完整學(xué)習(xí)路徑!

    迅為iTOP-Hi3516開發(fā)板linux驅(qū)動(dòng)開發(fā)資料全面上線,構(gòu)建從入門到精通的完整學(xué)習(xí)路徑!
    的頭像 發(fā)表于 12-19 15:47 ?635次閱讀
    迅為iTOP-<b class='flag-5'>Hi3516</b><b class='flag-5'>開發(fā)板</b>驅(qū)動(dòng)<b class='flag-5'>開發(fā)</b>資料全面上線,構(gòu)建從入門到精通的完整學(xué)習(xí)路徑!

    RK3506開發(fā)板QT Creator開發(fā)手冊(cè),交叉編譯工具鏈與QT應(yīng)用示例,入門必備

    本文基于觸覺智能RK3506核心/開發(fā)板介紹QTCreator交叉編譯配置與QT應(yīng)用示例。如需購買開發(fā)板進(jìn)行評(píng)估驗(yàn)證簡介QTCreatorQtCreator?是由TheQtCompa
    的頭像 發(fā)表于 09-30 16:26 ?3684次閱讀
    RK3506<b class='flag-5'>開發(fā)板</b>QT Creator<b class='flag-5'>開發(fā)</b>手冊(cè),交叉<b class='flag-5'>編譯</b>工具鏈與QT應(yīng)用示例,入門必備

    迅為Hi3516CV610開發(fā)板強(qiáng)勁內(nèi)核-海思Hi3516CV610核心

    迅為Hi3516CV610開發(fā)板強(qiáng)勁內(nèi)核-海思Hi3516CV610核心
    的頭像 發(fā)表于 09-30 15:19 ?2256次閱讀
    迅為<b class='flag-5'>Hi3516</b>CV610<b class='flag-5'>開發(fā)板</b>強(qiáng)勁內(nèi)核-海思<b class='flag-5'>Hi3516</b>CV610核心<b class='flag-5'>板</b>

    Adafruit 4343 開發(fā)板紅色 LED 閃爍, 且屏幕不工作, 怎么解決?

    Adafruit 4343 開發(fā)板紅色 LED 閃爍, 且屏幕不工作, 該怎么辦
    發(fā)表于 09-08 07:19

    如何在RK3576開發(fā)板編譯OpenCV并搭建應(yīng)用

    本文將介紹基于米爾電子MYD-LR3576開發(fā)板(米爾基于瑞芯微RK3576開發(fā)板)的編譯OpenCV及環(huán)境搭建方案的開發(fā)測(cè)試。摘自優(yōu)秀
    的頭像 發(fā)表于 08-08 08:04 ?3545次閱讀
    如何在RK3576<b class='flag-5'>開發(fā)板</b><b class='flag-5'>上</b><b class='flag-5'>板</b>端<b class='flag-5'>編譯</b>OpenCV并搭建應(yīng)用

    【創(chuàng)龍TLT113-MiniEVM開發(fā)板試用體驗(yàn)】T113開發(fā)板LED閃爍控制終極教程

    _blink.sh 總結(jié) 本教程提供了四種在T113開發(fā)板實(shí)現(xiàn)LED閃爍的方法,各有優(yōu)勢(shì): 方法 優(yōu)點(diǎn) 適用場(chǎng)景 Shell腳本 簡單易用,無需
    發(fā)表于 08-06 13:56

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

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

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

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

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

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

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

    1、實(shí)驗(yàn)簡介本實(shí)驗(yàn)將演示如何在小凌派-RK2206開發(fā)板使用IOT庫的GPIO中斷模式,進(jìn)行GPIO編程開發(fā)。例程將創(chuàng)建一個(gè)任務(wù),通過配置GPIO引腳為中斷模式,實(shí)現(xiàn)GPIO中斷操作。例程源代碼
    的頭像 發(fā)表于 04-21 10:39 ?1098次閱讀
    基于小凌派RK2206<b class='flag-5'>開發(fā)板</b>:<b class='flag-5'>OpenHarmony</b>如何使用IoT接口<b class='flag-5'>控制</b>GPIO中斷

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

    1、案例簡介本案例主要是如何在小凌派-RK2206開發(fā)板使用IOT庫的GPIO接口,進(jìn)行GPIO編程開發(fā)。例程將創(chuàng)建一個(gè)任務(wù),通過配置GPIO引腳,實(shí)現(xiàn)GPIO讀寫操作。例程源代碼:https
    的頭像 發(fā)表于 04-11 15:36 ?2042次閱讀
    基于小凌派RK2206<b class='flag-5'>開發(fā)板</b>:<b class='flag-5'>OpenHarmony</b>如何使用IoT接口<b class='flag-5'>控制</b>GPIO外設(shè)

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

    1、案例簡介本案例主要講解如何在小凌派-RK2206開發(fā)板使用IoT庫的ADC接口,進(jìn)行ADC編程開發(fā)。例程內(nèi)容為創(chuàng)建一個(gè)任務(wù),讀取按鍵的ADC值,并打印到串口。例程源代碼:https
    的頭像 發(fā)表于 04-10 16:00 ?904次閱讀
    基于小凌派RK2206<b class='flag-5'>開發(fā)板</b>:<b class='flag-5'>OpenHarmony</b>如何使用IoT接口<b class='flag-5'>控制</b>ADC外設(shè)

    北京迅為iTOP-RK3568開發(fā)板OpenHarmony系統(tǒng)南向驅(qū)動(dòng)開發(fā)實(shí)操-HDF驅(qū)動(dòng)配置LED

    北京迅為iTOP-RK3568開發(fā)板OpenHarmony系統(tǒng)南向驅(qū)動(dòng)開發(fā)實(shí)操-HDF驅(qū)動(dòng)配置LED
    的頭像 發(fā)表于 03-14 14:41 ?1349次閱讀
    北京迅為iTOP-RK3568<b class='flag-5'>開發(fā)板</b><b class='flag-5'>OpenHarmony</b>系統(tǒng)南向驅(qū)動(dòng)<b class='flag-5'>開發(fā)</b>實(shí)操-HDF驅(qū)動(dòng)配置<b class='flag-5'>LED</b>

    北京迅為RK3568開發(fā)板OpenHarmony系統(tǒng)南向驅(qū)動(dòng)開發(fā)內(nèi)核HDF驅(qū)動(dòng)框架架構(gòu)

    北京迅為RK3568開發(fā)板OpenHarmony系統(tǒng)南向驅(qū)動(dòng)開發(fā)內(nèi)核HDF驅(qū)動(dòng)框架架構(gòu)
    的頭像 發(fā)表于 03-11 14:13 ?1851次閱讀
    北京迅為RK3568<b class='flag-5'>開發(fā)板</b><b class='flag-5'>OpenHarmony</b>系統(tǒng)南向驅(qū)動(dòng)<b class='flag-5'>開發(fā)</b>內(nèi)核HDF驅(qū)動(dòng)框架架構(gòu)