【祖传点灯】安信可Ai-M61-32S + RGB点灯

[复制链接]
查看407 | 回复7 | 2024-5-2 21:00:27 | 显示全部楼层 |阅读模式

本帖最后由 泰勒soc 于 2024-5-2 22:24 编辑

前言

板子在路上,环境搭建弄了好久,与论坛之前的教程有小小的区别。 准备安装git,vscode,参考零基础搭建小安派Windows 开发环境 https://bbs.ai-thinker.com/forum.php?mod=viewthread&tid=282 (出处: 物联网开发者社区-安信可论坛)

M61板子资料https://docs.ai-thinker.com/ai_m61

环境搭建

M61的板子开发环境对应的SDK就是gitee上的

git clone https://gitee.com/Ai-Thinker-Open/aithinker_Ai-M6X_SDK.git

image.png

下载下来,得到 aithinker_Ai-M6X_SDK文件夹

image.png

其中tools和toolchain文件夹是空的,需要下载

aithinker_Ai-M6X_SDK/toolchain文件夹中下载 GCC 工具链 git clone https://gitee.com/bouffalolab/toolchain_gcc_t-head_windows.git

image.png

aithinker_Ai-M6X_SDK/tools文件夹下载BouffaloSDK 获取tools工具链 git clone https://github.com/bouffalolab/bouffalo_sdk.git

image.png

添加3个path环境变量

image.png

验证环境是否配置成功 在PowerShell 输入 make -v输出版本信息

image.png

在PowerShell 输入 riscv64-unknown-elf-gcc -v,输出版本信息

image.png

测试DEMO

example文件夹内有很多项目

image.png

vscode打开 helloworld项目,打开终端命令行,输入命令 make clean清除之前可能编译出现的 build,然后输入 make命令编译

image.png

编译100%,输出编译信息 Built target combine

PS H:\aithinker_workspace\aithinker_Ai-M6X_SDK\examples\helloworld> make

[100%] Linking C executable build_out\helloworld_bl616.elf
Generate H:/aithinker_workspace/aithinker_Ai-M6X_SDK/examples/helloworld/build/build_out/helloworld_bl616.bin
[100%] Built target helloworld_bl616.elf


Built target combine
PS H:\aithinker_workspace\aithinker_Ai-M6X_SDK\examples\helloworld>

烧录程序 先按住 IO2 (烧录按键)这个按键不松手,再按下 EN (复位)按键,两个都松开,进入烧录代码模式。

image.png

终端执行命令 make flash COMX=COM4

串口号在设备管理器中查看或者在安信可串口助手查看 image.png

下载成功后,按下 en 进行复位。

点灯DEMO

新建一个自己的项目,与例程放在一起

image.png

更改项目名,此名为编译输出文件名

修改cmakelist.txt文件,project(gpio_input_output_rgb)括号内是项目名

image.png

代码如下,可自己更改

#include "bflb_gpio.h"
#include "board.h"

struct bflb_device_s *gpio;

uint32_t gpio_group[] = {GPIO_PIN_12, GPIO_PIN_14, GPIO_PIN_15};
int main(void)
{
    board_init();

    gpio = bflb_device_get_by_name("gpio"); // get gpio device

    // set gpio pin mode
    bflb_gpio_init(gpio, GPIO_PIN_12, GPIO_OUTPUT | GPIO_PULLUP | GPIO_SMT_EN | GPIO_DRV_0);
    bflb_gpio_init(gpio, GPIO_PIN_14, GPIO_OUTPUT | GPIO_PULLUP | GPIO_SMT_EN | GPIO_DRV_0);
    bflb_gpio_init(gpio, GPIO_PIN_15, GPIO_OUTPUT | GPIO_PULLUP | GPIO_SMT_EN | GPIO_DRV_0);

    bflb_gpio_reset(gpio, GPIO_PIN_12);
    bflb_gpio_reset(gpio, GPIO_PIN_14);
    bflb_gpio_reset(gpio, GPIO_PIN_15);

    // bflb_gpio_init(gpio, GPIO_PIN_27, GPIO_OUTPUT | GPIO_PULLUP | GPIO_SMT_EN | GPIO_DRV_0);
    // bflb_gpio_init(gpio, GPIO_PIN_29, GPIO_OUTPUT | GPIO_PULLUP | GPIO_SMT_EN | GPIO_DRV_0);

    // bflb_gpio_set(gpio, GPIO_PIN_27);
    // bflb_gpio_set(gpio, GPIO_PIN_29);


    uint8_t i = 0;
    while (1) {
        for(uint8_t j = 0; j < 2; j++) {
            bflb_gpio_set(gpio, gpio_group[i]);
            bflb_mtimer_delay_ms(200);
            bflb_gpio_reset(gpio, gpio_group[i]);
            bflb_mtimer_delay_ms(200);
        }
        bflb_gpio_set(gpio, gpio_group[i]);
        bflb_mtimer_delay_ms(500);
        bflb_gpio_reset(gpio, gpio_group[i]);
        i = (i + 1) % 3;
    }
}

按照测试DEMO,编译,烧录,复位,查看效果

image.png

回复

使用道具 举报

iiv | 2024-5-2 21:23:59 | 显示全部楼层
很棒,把视频转成gif就可以发到帖子里了
回复 支持 反对

使用道具 举报

noonezero | 2024-5-3 10:37:46 | 显示全部楼层
文件夹名怎么加粗的
回复 支持 反对

使用道具 举报

wukong50 | 2024-5-3 11:38:05 | 显示全部楼层
可以可以
回复

使用道具 举报

timo | 2024-5-3 12:41:31 | 显示全部楼层
666
回复

使用道具 举报

7788 | 2024-5-3 13:32:03 | 显示全部楼层
我还没收到
回复 支持 反对

使用道具 举报

sansui | 2024-5-3 14:11:38 | 显示全部楼层
真快
回复

使用道具 举报

知行合一 | 2024-5-3 15:24:33 | 显示全部楼层
这就完成了
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则