赞
踩
HI3861V100 芯片有 15 个 GPIO,引脚分布如下:
以下 GPIO 接口位于 base\iot_hardware\interfaces\kits\wifiiot_lite\wifiiot_gpio.h。
业务BUILD.gn中包含路径
include_dirs = [
"//utils/native/lite/include",
"//kernel/liteos_m/components/cmsis/2.0",
"//base/iot_hardware/interfaces/kits/wifiiot_lite",
]
功能 | 初始化GPIO外设 |
---|---|
函数定义 | unsigned int GpioInit(void) |
参数 | 无 |
返回 | 错误码 |
功能 | 设置GPIO输出方向 |
---|---|
函数定义 | unsigned int GpioSetDir(WifiIotGpioIdx id, WifiIotGpioDir dir) |
参数 | id:表示GPIO引脚号 dir:表示GPIO输出方向 |
返回 | 错误码 |
功能 | 设置GPIO引脚输出电平值 |
---|---|
函数定义 | unsigned int GpioSetOutputVal(WifiIotGpioIdx id, WifiIotGpioValue val) |
参数 | id:表示GPIO引脚号 dir:表示GPIO输出电平值 |
返回 | 错误码 |
以下扩展 GPIO 接口位于 base\iot_hardware\interfaces\kits\wifiiot_lite\wifiiot_gpio_ex.h。
功能 | 设置GPIO引脚功能 |
---|---|
函数定义 | unsigned int IoSetFunc(WifiIotIoName id, unsigned char val) |
参数 | id:表示GPIO引脚号 val:表示IO复用功能 |
返回 | 错误码 |
编译时在业务BUILD.gn中包含路径
include_dirs = [
"//utils/native/lite/include",
"//kernel/liteos_m/components/cmsis/2.0",
"//base/iot_hardware/interfaces/kits/wifiiot_lite",
]
使用板载的LED来验证GPIO的输出功能,在BearPi-HM_Nano开发板上LED的连接电路图如下图所示,LED的控制引脚与主控芯片的GPIO_2连接,所以需要编写软件去控制GPIO_2输出高低电平实现LED灯的亮灭。
#include <stdio.h> #include <unistd.h> #include "ohos_init.h" #include "cmsis_os2.h" #include "wifiiot_gpio.h" #include "wifiiot_gpio_ex.h" static void LedTask(void) { //初始化GPIO GpioInit(); //设置GPIO_2的复用功能为普通GPIO IoSetFunc(WIFI_IOT_IO_NAME_GPIO_2, WIFI_IOT_IO_FUNC_GPIO_2_GPIO); //设置GPIO_2为输出模式 GpioSetDir(WIFI_IOT_GPIO_IDX_2, WIFI_IOT_GPIO_DIR_OUT); while (1) { //设置GPIO_2输出高电平点亮LED灯 GpioSetOutputVal(WIFI_IOT_GPIO_IDX_2, 1); //延时1s usleep(1000000); //设置GPIO_2输出低电平熄灭LED灯 GpioSetOutputVal(WIFI_IOT_GPIO_IDX_2, 0); //延时1s usleep(1000000); } } static void LedExampleEntry(void) { osThreadAttr_t attr; attr.name = "LedTask"; attr.attr_bits = 0U; attr.cb_mem = NULL; attr.cb_size = 0U; attr.stack_mem = NULL; attr.stack_size = 512; attr.priority = 25; if (osThreadNew((osThreadFunc_t)LedTask, NULL, &attr) == NULL) { printf("Falied to create LedTask!\n"); } } APP_FEATURE_INIT(LedExampleEntry);
代码编译烧录代码后,按下开发板的RESET按键,开发板的LED灯开始闪烁:
• 由 Leung 写于 2021 年 7 月 26 日
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。