同步操作将从 OpenHarmony/docs 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
Based on the Hi3861 platform, the OpenHarmony WLAN module provides abundant peripheral operation capabilities, including the I2C, I2S, ADC, UART, SPI, SDIO, GPIO, PWM, and flash memory. This document describes how to control GPIO pins by calling the OpenHarmony native development kit (NDK) interface to implement LED blinking. For details about how to control other IoT peripherals, see the API guide.
Complete the operations described in Getting Started with Hi3861.
LED control examples are stored in the file applications/sample/wifi-iot/app/iothardware/led_example.c.
Understand the cable connections by referring to the schematic diagram. You can learn that LED of hispark pegasus is connected to pin 9 of the chip.
#define LED_TEST_GPIO 9
NOTE: For details about the schematic diagram of the development board, contact the Hi3861 customer service personnel.
Initialize the GPIO pin, specify the pin usage, and create a task to turn on or off the LED periodically so that the LED blinks.
static void LedExampleEntry(void)
{
osThreadAttr_t attr;
/* Initialize the GPIO pin. */
IoTGpioInit(LED_TEST_GPIO);
/* Set pin 9 as the output direction. */
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;
/* Start the task. */
if (osThreadNew((osThreadFunc_t)LedTask, NULL, &attr) == NULL) {
printf("[LedExample] Failed to create LedTask!\n");
}
}
Use a cyclic task in which the LED periodically turns on and off to implement LED blinking.
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;
}
}
return NULL;
}
Call SYS_RUN() of OpenHarmony to start the service. (SYS_RUN is defined in the ohos_init.h file.)
SYS_RUN(LedExampleEntry);
Change the applications/sample/wifi-iot/app/BUILD.gn file to enable led_example.c to participate in compilation.
import("//build/lite/config/component/lite_component.gni")
lite_component("app") {
features = [
"iothardware:led_example"
]
}
For details about the compilation and burning processes, see Building Source Code and Burning Images in the Getting Started with Hi3861.
After the preceding two steps are complete, press the RST button to reset the module. If the LED blinks periodically as expected, the verification is passed.
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。