本文重点:如何编写点亮LED灯程序如何编译烧录点亮LED灯程序如何调试点亮LED灯程序 步骤 步骤一:添加点亮LED源码文件 新增myled文件夹 在。applicationsBearPiBearPiHMNanomple路径下新建一个myled目录,用于存放业务源码文件。 新增ledexample。c文件 在。applicationsBearPiBearPiHMNanomplemyled路径下新建一个ledexample。c文件,该文件为业务源码文件。 新增BUILD。gn文件 在。applicationsBearPiBearPiHMNanomplemyled路径下新建一个BUILD。gn文件,该文件为业务源码编译脚本。 步骤二:添加点亮LED灯源码 代码如下:includestdio。hincludeunistd。hincludeohosinit。hincludewifiiotgpio。hincludewifiiotgpioex。hvoidled(void){GpioInit();初始化GPIOIoSetFunc(WIFIIOTIONAMEGPIO2,WIFIIOTIOFUNCGPIO2GPIO);设置GPIO2的复用功能为普通GPIOGpioSetDir(WIFIIOTIONAMEGPIO2,WIFIIOTGPIODIROUT);设置GPIO2为输出模式GpioSetOutputVal(WIFIIOTIONAMEGPIO2,1);设置GPIO2输出高电平点亮LED灯}APPFEATUREINIT(led); 步骤三:编写业务编译构建文件BUILD。gn 编写用于将业务构建成静态库的BUILD。gn文件: 在。applicationsBearPiBearPiHMNanomplemyled下的BUILD。gn文件中添加如下代码:staticlibrary(myled){sources〔led。c〕includedirs〔utilsnativeliteinclude,baseiothardwareinterfaceskitswifiiotlite〕} staticlibrary中指定业务模块的编译结果,为静态库文件libmyled。a,开发者根据实际情况完成填写。 sources中指定静态库。a所依赖的。c文件及其路径,若路径中包含则表示绝对路径(此处为代码根路径),若不包含则表示相对路径。 includedirs中指定source所需要依赖的。h文件路径。 步骤四:编写模块编译构建文件BUILD。gn 编写模块BUILD。gn文件,指定需参与构建的特性模块。 在。applicationsBearPiBearPiHMNanomple下的BUILD。gn文件中添加如下代码:import(buildliteconfigcomponentlitecomponent。gni)litecomponent(app){features〔myled:myled,〕} myled是相对路径,指向:。applicationsBearPiBearPiHMNanomplemyledBUILD。gn led是目标,指向:。applicationsBearPiBearPiHMNanomplemyledBUILD。gn中的staticlibrary(myled) Led闪烁实验 代码如下:调试LED程序includeohosinit。hincludeunistd。hincludewifiiotgpio。hincludewifiiotgpioex。hvoidleddelay(void){GpioInit();IoSetFunc(WIFIIOTIONAMEGPIO2,WIFIIOTIOFUNCGPIO2GPIO);GpioSetDir(WIFIIOTIONAMEGPIO2,WIFIIOTGPIODIROUT);for(inti0;i10;i){GpioSetOutputVal(WIFIIOTIONAMEGPIO2,1);usleep(1000000);GpioSetOutputVal(WIFIIOTIONAMEGPIO2,0);usleep(1000000);}}APPFEATUREINIT(leddelay); 总结 如下:includeohosinit。h包含APPFEATUREINIT这个函数baseiothardwareinterfaceskitswifiiotlite相对路径在Z:homebearpiBearPIcodebearpihmnanobaseiothardwareinterfaceskitswifiiotlitewifiiotgpioex。hZ:homebearpiBearPIcodebearpihmnanobaseiothardwareinterfaceskitswifiiotlitewifiiotgpio。hIoSetFunc》gpio的设置GpioSetDir》gpio的模式 结果如下图: