在我们成功的对环境进行初始化之后,尝试写一个HelloWorld来验证下外设资源
这里我们尝试点亮 1 个 RGB led灯, 本教程基于Ai-wb2-32s-kit 开发板,如若使用Ai-wb2芯片则自己修改GPIO端口即可
步骤如下:
1- 首先在官方下载AI-wb2-32s kit的原理图
2- 根据下图得知,只需要对,对应端口IO3 IO14 IO17 分别给予高电平,那么不同的LED颜色将会被点亮。
3-代码如下:
- #include <stdio.h>
- #include <string.h>
- //引入博流的GPIO库
- #include "bl_gpio.h"
- #include <FreeRTOS.h>
- #include <task.h>
- // define the gpio port for blue 定义蓝色gpio端口
- #define BLUE_LED 3
- // define the gpio port for red 定义红色gpio端口
- #define RED_LED 14
- // define the gpio port for green 定义绿色gpio端口
- #define GREEN_LED 17
- void main(){
- // 允许端口输出
- bl_gpio_enable_output(BLUE_LED,1,0);
- //输出高电平
- bl_gpio_output_set(BLUE_LED, 1);
- //休眠一秒
- vTaskDelay(1000);
- bl_gpio_output_set(BLUE_LED, 0);
- vTaskDelay(1000);
- bl_gpio_enable_output(RED_LED,1,0);
- bl_gpio_output_set(RED_LED, 1);
- vTaskDelay(1000);
- bl_gpio_output_set(RED_LED, 0);
- vTaskDelay(1000);
- bl_gpio_enable_output(GREEN_LED,1,0);
- bl_gpio_output_set(GREEN_LED, 1);
- vTaskDelay(1000);
- bl_gpio_output_set(GREEN_LED, 0);
- vTaskDelay(1000);
- bl_gpio_output_set(BLUE_LED, 1);
- bl_gpio_output_set(RED_LED, 1);
- bl_gpio_output_set(GREEN_LED, 1);
-
- }
复制代码 在上述代码中,我并不想使用FreeRtos,但是我不知道怎么基于当前的MCU写一个精准的定时,于是为了使用Task里的vTaskDelay 函数,所以必须引入FreeRtos作为前置依赖(因为自己没有系统学习过Freertos, 学习必须一步一个脚印,不能急于求成)
实验现象如下
蓝色灯亮起 - > 熄灭
红色灯亮起- > 熄灭
绿色灯亮起-> 熄灭
红绿蓝同时亮起
Ps:Hal函数或者类似库函数的使用,使其对于应用开发的难度减小了很多,并不是很需要去学习寄存器,而是仅仅的掌握函数
|
|