当前位置: 首页 > news >正文

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

http://www.jsqmd.com/news/699479/

相关文章:

  • WinUtil终极指南:5分钟掌握Windows系统优化与批量安装工具
  • 别只盯着结构检查!用VC Spyglass Hybrid Flow为你的CDC验证加上功能安全双保险
  • 上海交通大学LaTeX论文模板:3步告别格式烦恼,专注学术创作
  • 安装red虚拟机系统
  • 旁路部署PXE:在Debian12与树莓派上实现无干扰网络启动服务
  • 3分钟精通RPA文件提取:解锁Ren‘Py游戏资源的终极指南
  • 北京大学POJ平台新手入门指南:从注册到AC你的第一道题
  • 华为VRRP配置避坑指南:我在eNSP里踩过的那些‘雷’,你最好别再踩了
  • OpenRGB终极指南:一个软件掌控所有RGB设备,告别多软件烦恼
  • 如何用TestDisk和PhotoRec:5分钟学会数据恢复终极指南
  • 瑞芯微RK3588 C++实战:Yolov8检测与分割模型端到端部署指南
  • 【多智能体控制】虚拟领航者和势函数的多智能体群集运动,包含避碰 聚集行为、速度一致性【含Matlab源码 15376期】
  • 终极指南:如何使用JD-Eclipse插件快速反编译Java字节码文件
  • C++ MCP网关从入门到上线:手把手搭建支持TLS1.3/HTTP/2/MCPv3协议栈的高可用网关(含Grafana+eBPF实时监控看板)
  • Illustrator脚本自动化深度解析:Fillinger智能填充插件的架构与实现机制
  • 从LeetCode真题出发:5道二叉树题目,彻底搞懂C语言递归与指针操作
  • 魔兽争霸III终极优化指南:WarcraftHelper完整配置与应用手册
  • VSCode 2026工业协议插件上线首周即封禁?揭秘工信部合规白名单准入机制与3步安全配置法
  • 保姆级教程:用e2calib和Kalibr搞定Inivation DAVIS346事件相机内参标定(附避坑指南)
  • 终极B站缓存视频合并指南:三步搞定碎片化视频难题
  • VSCode 2026远程开发连接稳定性白皮书:基于17万次连接日志分析的TOP5故障模式及自动修复脚本
  • TMS320F28377S SCI模块FIFO实战:从寄存器配置到串口调试的完整避坑指南
  • 从VTK官网示例到可运行的Qt项目:手把手教你将C++样例代码集成到自己的GUI程序中
  • Google免费生成式AI课程:从基础到实战全解析
  • Unity UI笔记
  • 开源项目常见问题终极解决方案:10个实用技巧助你轻松应对
  • 如何1秒快速静音麦克风?MicMute终极指南教你告别会议尴尬
  • 探索世界新视野:OpenEyes短视频应用的终极体验指南
  • 告别‘Argument list too long’:三种高效清理Oracle adump海量小文件的保姆级教程
  • 抖音批量下载工具终极指南:免费去水印,支持视频、图集、音乐全资源下载