发帖
7 0 0

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

泰勒soc
中级会员

1

主题

4

回帖

237

积分

中级会员

积分
237
Ai-M61-Kit点灯教程 549 7 2024-5-2 21:00:27

[i=s] 本帖最后由 泰勒soc 于 2024-5-2 22:24 编辑 [/i]<br /> <br />

前言

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

M61板子资料[https://docs.ai-thinker.com/ai_m61](https://docs.ai-thinker.com/ai_m61)

环境搭建

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

git clone [https://gitee.com/Ai-Thinker-Open/aithinker_Ai-M6X_SDK.git](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](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](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

──── 0人觉得很赞 ────

使用道具 举报

2024-5-2 21:23:59
很棒,把视频转成gif就可以发到帖子里了
2024-5-3 10:37:46
文件夹名怎么加粗的
2024-5-3 11:38:05
可以可以
2024-5-3 12:41:31
666
2024-5-3 13:32:03
我还没收到
2024-5-3 14:11:38
真快
这就完成了
您需要登录后才可以回帖 立即登录
高级模式
返回
统计信息
  • 会员数: 28295 个
  • 话题数: 40289 篇