Ai-WB2-32S VS Code开发环境部署与GPIO控制
Ai-WB2-32S模块收到了,迫不及待的找到了资料要进行祖传点灯操作,但是大多数的教程都是【搭建windows+eclipse环境】,这对于我经常使用VS Code的人来讲是一个不大不小问题。所以本着不放弃的精神,研究起了VS Code。
一、软硬件准备
Ai-WB2-32S模块是少不了的。因为电脑中本就有VS Code,所以就此省略,有需要的朋友可以参考:https://bbs.ai-thinker.com/forum.php?mod=viewthread&tid=282
其它软件及SDK:
1. msys2软件安装包下载地址:https://www.msys2.org/
2. Ai-WB2系列SDK开发包下载地址:https://gitee.com/Ai-Thinker-Open/Ai-Thinker-WB2,这里不建议手动下载,否则mysys文件夹下的工具链是空的!
可按以下方法获取完整的sdk及子摸快:
打开git输入以下:git clone --recursive https://gitee.com/Ai-Thinker-Open/Ai-Thinker-WB2,
二、软件的安装和环境变量配置
1.msys2软件安装
1.1 双击安装软件msys2-x86_64-20220603.exe 后按照如下顺序进行:
此处可以修改安装文件夹,请确认。
等待安装完成
1.2 打开MSYS2安装git,输入命令:pacman -S git 后回车,直到安装完成
1.3再继续安装make,输入命令:pacman -S make 后回车,直到安装完成
2. SDK下载
打开git输入以下:git clone --recursive https://gitee.com/Ai-Thinker-Open/Ai-Thinker-WB2,并回车,待下载完成。
三、编译工程
1.1文件-->打开文件夹,选取自己SDK的目录,例如我的是在D:\code\Ai-Thinker-WB2
1.2文件夹打开后这里一定要注意,点击.vscode-->找到settings.json。
1.3打开settings.json拷贝以下内容进行粘贴并保存。
- {
- "terminal.integrated.env.windows": {
- "PATH":"Y:\\code\\bl602\\\\mys2\\usr\\bin;Y:\\code\\bl602\\\\wb3\\Ai-Thinker-WB2\\toolchain\\riscv\\MSYS\\bin;;"
- },
- "terminal.integrated.cwd": "${fileDirname}/../"
- }
1.4 打开applications\peripherals\demo_gpio\demo_gpio\main.c可进行点灯测试。
1.5拷贝点灯程序,即可进行三色灯交替循环点亮,内容如下:
#include <stdio.h>
#include <string.h>
#include <FreeRTOS.h>
#include <task.h>
#include <bl_gpio.h>
//#define GPIO_BUTTON_PIN 8
#define GPIO_LED_G_PIN 17
#define GPIO_LED_R_PIN 14
#define GPIO_LED_B_PIN 3
void LED_init(void)
{
//bl_gpio_enable_input(GPIO_BUTTON_PIN, 0, 0);
bl_gpio_enable_output(GPIO_LED_G_PIN, 0, 0);
bl_gpio_enable_output(GPIO_LED_R_PIN, 0, 0);
bl_gpio_enable_output(GPIO_LED_B_PIN, 0, 0);
bl_gpio_output_set(GPIO_LED_G_PIN, 0);
bl_gpio_output_set(GPIO_LED_R_PIN, 0);
bl_gpio_output_set(GPIO_LED_B_PIN, 0);
}
void LED_blink(void)
{
bl_gpio_output_set(GPIO_LED_G_PIN, 1);
vTaskDelay(500);
bl_gpio_output_set(GPIO_LED_G_PIN, 0);
vTaskDelay(500);
bl_gpio_output_set(GPIO_LED_R_PIN, 1);
vTaskDelay(500);
bl_gpio_output_set(GPIO_LED_R_PIN, 0);
vTaskDelay(500);
bl_gpio_output_set(GPIO_LED_B_PIN, 1);
vTaskDelay(500);
bl_gpio_output_set(GPIO_LED_B_PIN, 0);
}
void main(void)
{
LED_init();
while (1)
{
LED_blink();
vTaskDelay(500);
}
}
最后看一下效果图吧,,,,
|