润和Hi3861学习笔记(一)——通过查询GPIO状态控制LED灯 原创
前言
本文学习参照润和软件HarmonyOSIoT设备开发一书,但由于版本迭代,书中很多代码无法编译,笔者在此进行补充更改,如有错误,请各位大佬多多指正。更多细节可购买此书进一步了解。
注:本文源代码版本:OpenHarmony v3.0.1LTS(2022-01-12)
代码变动
-
1.0版本的头文件"wifiiot_gpio.h"和”wifiiot_gpio_ex.h"现在已经合并
为"iot_gpio.h"。 -
函数名的变化大多都是在原名前加上IOT,
例如:GpioSetDir()改为IOTGpioSetDir()。 -
部分函数放在了其他文件中并且名字发生了变化,
比如IoSetPull(id,val)现在放在了"hi_io.h"中,函数名变为hi_io_set_pull(); -
其他:
WifiIotGpioValue -> IotGpioValue (注意:这里的Iot的t是小写)WIFI_IOT_GPIO_VALUE0 ->IOT_GPIO_VALUE0
IosetFunc() -> hi_io_set_func()
可以通过查找它的头文件,了解各个函数的具体定义。方法:在vscode中打开源码目录,然后ctrl+p,在输入框中输入要查找的头文件,它就能自动定位到头文件所在位置并打开。
例如输入hi_io.h,就能定义到device\hisilicon\hispark_pegasus\sdk_liteos\include\hi_io.h这个位置,里面有描述各个函数的功能。
通过查询GPIO状态控制LED灯
1.在源码application/sample/wifi-iot/app下新建gpio_demo文件夹,在gpio_demo文件夹中新建gpio_input_set.c文件。
代码目录如下:
内容如下:
2.在gpio_demo文件夹中新建BUILD.gn文件,
目录如下:
内容如下:
3.修改app文件夹下的BUILD.gn文件,
目录如下:
修改后内容如下:
原理图
user按键原理图:
LED原理图:
user按键与引脚GPIO05相连,当按键按下时,GPIO05引脚接地,处于低电平状态。由于我们设置了读取GPIO05状态的函数,所以此时GPIO09也会被设置为低电平状态,LED灯亮起。而又因为右边的显示屏下方的按键1和按键2也同样接的是GPIO05引脚,所以按下它们也会有同样的效果。
效果演示
使用小熊派成功搞定, 感谢分享。