Ai-WB2-32S gpio驱动RGB灯
文章目录
- 前言
- 一、具体流程
- 第1步 进入目录
- 第2步 进入gpio目录并创建如下文件/目录
- 第3步 编写Makefile文件(代码如下)
- 第4步编写proj_config.mk文件(代码如下)
- 第5步 编写README.md文件(代码如下,该文件不参与执行)
- 第6步 进入gpio目录并创建如下文件
- 第7步 根据原理图编写main.c文件(代码如下)
- 第8步 编写bouffalo.mk文件(代码如下)
- 二、编译并烧录
- 第1步 进入~/Ai-Thinker-WB2/applications/get-started/gpio目录
- 第2步 执行make -j8
- 第3步 执行make flash p=/dev/ttyUSB0 b=115200(此时模组需要连接到虚拟机)
- 三 执行结果图
- 总结
前言
本期博客介绍使用库编写gpio驱动RGB灯。
如果想要使用下面流程,请先查看Linux Ubuntu下烧录固件的过程,点击此链接进行查看
一、具体流程
第1步 进入目录
cd ~/Ai-Thinker-WB2/applications/get-started
创建目录gpio
第2步 进入gpio目录并创建如下文件/目录
第3步 编写Makefile文件(代码如下)
## This is a project Makefile. It is assumed the directory this Makefile resides in is a# project subdirectory.#PROJECT_NAME :=gpio PROJECT_PATH :=$(abspath.)PROJECT_BOARD :=evbexportPROJECT_PATH PROJECT_BOARD#CONFIG_TOOLPREFIX :=-include./proj_config.mk ifeq($(origin BL60X_SDK_PATH), undefined)BL60X_SDK_PATH_GUESS ?=$(shellpwd)BL60X_SDK_PATH ?=$(BL60X_SDK_PATH_GUESS)/../../..$(info ****** Please SET BL60X_SDK_PATH ******)$(info ****** Trying SDKPATH[$(BL60X_SDK_PATH)])endif COMPONENTS_BLSYS :=bltime blfdt blmtd bloop loopadc looprt loopset COMPONENTS_VFS :=romfs INCLUDE_COMPONENTS+=freertos_riscv_ram bl602 bl602_std newlibc hosal mbedtls_lts lwip vfs yloop utils cli blog blog_testc coredump INCLUDE_COMPONENTS+=$(COMPONENTS_NETWORK)INCLUDE_COMPONENTS+=$(COMPONENTS_BLSYS)INCLUDE_COMPONENTS+=$(COMPONENTS_VFS)INCLUDE_COMPONENTS+=$(PROJECT_NAME)include$(BL60X_SDK_PATH)/make_scripts_riscv/project.mk第4步编写proj_config.mk文件(代码如下)
##compiler flag config domain##CONFIG_TOOLPREFIX :=#CONFIG_OPTIMIZATION_LEVEL_RELEASE := 1#CONFIG_M4_SOFTFP := 1##board config domain#CONFIG_BOARD_FLASH_SIZE :=2#firmware config domain##set CONFIG_ENABLE_ACP to 1 to enable ACP, set to 0 or comment this line to disable#CONFIG_ENABLE_ACP:=1CONFIG_BL_IOT_FW_AP:=1CONFIG_BL_IOT_FW_AMPDU:=0CONFIG_BL_IOT_FW_AMSDU:=0CONFIG_BL_IOT_FW_P2P:=0CONFIG_ENABLE_PSM_RAM:=1#CONFIG_ENABLE_CAMERA:=1#CONFIG_ENABLE_BLSYNC:=1#CONFIG_ENABLE_VFS_SPI:=1CONFIG_ENABLE_VFS_ROMFS:=1CONFIG_EASYFLASH_ENABLE:=0CONFIG_SYS_APP_TASK_STACK_SIZE:=4096CONFIG_SYS_APP_TASK_PRIORITY:=15CONFIG_FREERTOS_TICKLESS_MODE:=0CONFIG_SYS_VFS_ENABLE:=1CONFIG_SYS_VFS_UART_ENABLE:=1CONFIG_SYS_AOS_CLI_ENABLE:=0CONFIG_SYS_AOS_LOOP_ENABLE:=1CONFIG_SYS_BLOG_ENABLE:=1CONFIG_SYS_DMA_ENABLE:=0CONFIG_SYS_USER_VFS_ROMFS_ENABLE:=0CONFIG_BL602_USE_ROM_DRIVER:=1CONFIG_BT_CENTRAL:=1CONFIG_BT_OBSERVER:=1CONFIG_BT_PERIPHERAL:=1CONFIG_BT_STACK_CLI:=1CONFIG_BT_WIFIPROV_SERVER:=1CONFIG_WIFI:=0CONF_ENABLE_COREDUMP:=1LOG_ENABLED_COMPONENTS:=blog_testc hosal loopset looprt bloop gpio第5步 编写README.md文件(代码如下,该文件不参与执行)
# Blink Example## Example OutputAs you run the example, you will see the log:Booting Ai-WB2 Modules... ------------------------------------------------------------ RISC-V Core Feature:RV32-ACFIMX Build Version: release_bl_iot_sdk_1.6.38 Build Date: Oct82022Build Time:15:42:26 ------------------------------------------------------------ blog initsetpower on level2,2,2.[IRQ]Clearing and Disable all the pending IRQ...[0][INFO: hal_boot2.c:282][HAL][BOOT2]Active Partition[0]consumed596Bytes[0][INFO: hal_boot2.c:82]=======PtTable_Config @0x4200d158=======[0][INFO: hal_boot2.c:83]magicCode 0x54504642;version 0x0000;entryCnt7;age0;crc32 0x12DF9A26[0][INFO: hal_boot2.c:89]idxtypedevice activeIndex name Address[0]Address[1]Length[0]Length[1]age[0][INFO: hal_boot2.c:91][00]0000FW 0x00010000 0x000e8000 0x000d8000 0x000880000[0][INFO: hal_boot2.c:91][01]0200mfg 0x00170000 0x00000000 0x00032000 0x000000000[0][INFO: hal_boot2.c:91][02]0300media 0x001a2000 0x00000000 0x00047000 0x000000000[0][INFO: hal_boot2.c:91][03]0400PSM 0x001e9000 0x00000000 0x00008000 0x000000000[0][INFO: hal_boot2.c:91][04]0500KEY 0x001f1000 0x00000000 0x00002000 0x000000000[0][INFO: hal_boot2.c:91][05]0600DATA 0x001f3000 0x00000000 0x00005000 0x000000000[0][INFO: hal_boot2.c:91][06]0700factory 0x001f8000 0x00000000 0x00007000 0x000000000[0][INFO: bl_flash.c:391]=======FlashCfg magiccode @0x42049c18=======[0][INFO: bl_flash.c:392]mid 0x5E[0][INFO: bl_flash.c:393]clkDelay 0x1[0][INFO: bl_flash.c:394]clkInvert 0x1[0][INFO: bl_flash.c:395]sector size 4KBytes[0][INFO: bl_flash.c:396]page size 256Bytes[0][INFO: bl_flash.c:397]---------------------------------------------------------------[0][INFO: hal_board.c:1249][MAIN][BOARD][FLASH]addr from partition is 001f8000, ret is0[0][INFO: hal_board.c:1257][MAIN][BOARD][XIP]addr from partition is 231e7000, ret is0Note: The color order could be different according to the LED model.## TroubleshootingFor any technical queries, pleaseopenan[issue](https://github.com/Ai-Thinker-Open/Ai-Thinker-WB2/issues)on GitHub. We will get back to you soon.第6步 进入gpio目录并创建如下文件
第7步 根据原理图编写main.c文件(代码如下)
#include<stdio.h>#include<string.h>#include<FreeRTOS.h>#include<task.h>#include<bl_gpio.h>#defineGPIO_B_PIN3#defineGPIO_R_PIN14#defineGPIO_G_PIN17voidblink_test(void*param){bl_gpio_enable_output(GPIO_B_PIN,0,0);bl_gpio_enable_output(GPIO_R_PIN,0,0);bl_gpio_enable_output(GPIO_G_PIN,0,0);while(1){bl_gpio_output_set(GPIO_B_PIN,1);vTaskDelay(1000);bl_gpio_output_set(GPIO_B_PIN,0);bl_gpio_output_set(GPIO_R_PIN,1);vTaskDelay(1000);bl_gpio_output_set(GPIO_R_PIN,0);bl_gpio_output_set(GPIO_G_PIN,1);vTaskDelay(1000);bl_gpio_output_set(GPIO_G_PIN,0);}}voidmain(void){xTaskCreate(blink_test,"blink",1024,NULL,15,NULL);}第8步 编写bouffalo.mk文件(代码如下)
## "main" pseudo-component makefile.## (Uses default behaviour of compiling all source files in directory, adding 'include' to include path.)include$(BL60X_SDK_PATH)/components/network/ble/ble_common.mk ifeq($(CONFIG_ENABLE_PSM_RAM),1)CPPFLAGS+=-DCONF_USER_ENABLE_PSRAMendif ifeq($(CONFIG_ENABLE_CAMERA),1)CPPFLAGS+=-DCONF_USER_ENABLE_CAMERAendif ifeq($(CONFIG_ENABLE_BLSYNC),1)CPPFLAGS+=-DCONF_USER_ENABLE_BLSYNCendif ifeq($(CONFIG_ENABLE_VFS_SPI),1)CPPFLAGS+=-DCONF_USER_ENABLE_VFS_SPIendif ifeq($(CONFIG_ENABLE_VFS_ROMFS),1)CPPFLAGS+=-DCONF_USER_ENABLE_VFS_ROMFSendif二、编译并烧录
第1步 进入~/Ai-Thinker-WB2/applications/get-started/gpio目录
cd ~/Ai-Thinker-WB2/applications/get-started/gpio
第2步 执行make -j8
第3步 执行make flash p=/dev/ttyUSB0 b=115200(此时模组需要连接到虚拟机)
三 执行结果图
总结
以上就是本期分享的内容,目的为了介绍如何使用库点亮RGB灯,更多资料可从安信可官网上获取。
官方官网:https://www.ai-thinker.com
开发资料:https://docs.ai-thinker.com/
官方论坛:http://bbs.ai-thinker.com
技术支持:support@aithinker.com
