概述
OpenHarmony WLAN模組基于Hi3861平臺提供了豐富的外設操作能力,包含I2C、I2S、ADC、UART、SPI、SDIO、GPIO、PWM、FLASH等。本文介紹如何通過調(diào)用OpenHarmony的NDK接口,實現(xiàn)對GPIO控制,達到LED閃爍的效果。其他的IOT外設控制,開發(fā)者可根據(jù)API指導文檔完成,此處不逐一介紹。
開發(fā)
- 請先完成[輕量系統(tǒng)快速入門]
LED控制參考示例存放于applications/sample/wifi-iot/app/iothardware/led_example.c文件中。 - 實現(xiàn)IOT外設控制,首先需要通過查閱原理圖明確接線關系。經(jīng)過查閱,hispark pegasus的LED與芯片的9號管腳相連。
鴻蒙開發(fā)指導文檔:[gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md]

#define LED_TEST_GPIO 9
說明: 開發(fā)板原理圖,請開發(fā)者聯(lián)系Hi3861購買渠道客服獲取。
- 使用GPIO前,需要完成GPIO管腳初始化,明確管腳用途,并創(chuàng)建任務,使LED周期性亮滅,達到閃爍的效果。
static void LedExampleEntry(void) { osThreadAttr_t attr; /* 管腳初始化 */ IoTGpioInit(LED_TEST_GPIO); /* 配置9號管腳為輸出方向 */ IoTGpioSetDir(LED_TEST_GPIO, IOT_GPIO_DIR_OUT); attr.name = "LedTask"; attr.attr_bits = 0U; attr.cb_mem = NULL; attr.cb_size = 0U; attr.stack_mem = NULL; attr.stack_size = LED_TASK_STACK_SIZE; attr.priority = LED_TASK_PRIO; /* 啟動任務 */ if (osThreadNew((osThreadFunc_t)LedTask, NULL, &attr) == NULL) { printf("[LedExample] Failed to create LedTask!n"); } } - 在循環(huán)任務中通過周期性亮滅形式實現(xiàn)LED閃爍。
static void *LedTask(const char *arg) { (void)arg; while (1) { switch (g_ledState) { case LED_ON: IoTGpioSetOutputVal(LED_TEST_GPIO, 1); usleep(LED_INTERVAL_TIME_US); break; case LED_OFF: IoTGpioSetOutputVal(LED_TEST_GPIO, 0); usleep(LED_INTERVAL_TIME_US); break; case LED_SPARK: IoTGpioSetOutputVal(LED_TEST_GPIO, 0); usleep(LED_INTERVAL_TIME_US); IoTGpioSetOutputVal(LED_TEST_GPIO, 1); usleep(LED_INTERVAL_TIME_US); break; default: usleep(LED_INTERVAL_TIME_US); break; } } } - 在代碼最下方,使用OpenHarmony啟動恢復模塊接口SYS_RUN()啟動業(yè)務。(SYS_RUN定義在ohos_init.h文件中)
SYS_RUN(LedExampleEntry); - 修改applications/sample/wifi-iot/app/BUILD.gn文件,使led_example.c參與編譯。
import("http://build/lite/config/component/lite_component.gni") lite_component("app") { features = [ "iothardware:led_example" ] }
驗證
編譯過程請參考[輕量系統(tǒng)快速入門的編譯章節(jié)],燒錄過程請參考[輕量系統(tǒng)快速入門的燒錄章節(jié)](。
完成以上兩步后,按下RST鍵復位模組,可發(fā)現(xiàn)LED在周期性閃爍,與預期相符,驗證完畢。
圖 1 LED閃爍圖

審核編輯 黃宇
-
led
+關注
關注
243文章
24338瀏覽量
685017 -
開發(fā)板
+關注
關注
25文章
6027瀏覽量
110731 -
鴻蒙
+關注
關注
60文章
2746瀏覽量
45140 -
OpenHarmony
+關注
關注
31文章
3897瀏覽量
20495
發(fā)布評論請先 登錄
鴻蒙OpenHarmony【輕量系統(tǒng)運行】 (基于Hi3861開發(fā)板)
鴻蒙OpenHarmony【集成三方SDK】 (基于Hi3861開發(fā)板)
鴻蒙OpenHarmony【輕量系統(tǒng) 環(huán)境搭建】 (基于Hi3861開發(fā)板)
鴻蒙OpenHarmony【輕量系統(tǒng) 運行】 (基于Hi3861開發(fā)板)
Hi3861開發(fā)板介紹
如何使用 HiBurn 工具燒錄鴻蒙的 .bin 文件到 Hi3861 開發(fā)板
自制Hi3861開發(fā)板(附原理圖和電路圖)
Hi3861編譯燒錄更快捷
潤開鴻Hi3861開發(fā)板介紹
鴻蒙OpenHarmony南向:【Hi3861開發(fā)板介紹】

鴻蒙OpenHarmony【LED外設控制】 (基于Hi3861開發(fā)板)
說明: 開發(fā)板原理圖,請開發(fā)者聯(lián)系Hi3861購買渠道客服獲取。
評論