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

[复制链接]
查看765 | 回复3 | 2024-5-5 13:22:30 | 显示全部楼层 |阅读模式

本帖最后由 Binkolo 于 2024-5-5 13:44 编辑

本帖最后由 Binkolo 于 2024-5-5 13:42 编辑

本帖最后由 Binkolo 于 2024-5-5 13:33 编辑

本帖最后由 Binkolo 于 2024-5-5 13:30 编辑

本帖最后由 Binkolo 于 2024-5-5 13:28 编辑

1. 环境搭建

1.1 安装工具:Git、VSCode

百度安装就好,我本来就有,不过多赘述,详情可以参考链接:

Git 详细安装教程(详解 Git 安装过程的每一个步骤)_git安装-CSDN博客

VSCode安装配置使用教程(最新版超详细保姆级含插件)一文就够了_vscode使用教程-CSDN博客

1.2 下载开发工具

可以使用Git工具下载,但我觉得太麻烦了,直接下载了文件。

在这个帖子里下载:小安派Windows环境一git到位资源包 - 小安派S1&M61教程合集

下载、解压、如图所示:

image-20240505120702-wh8n98i.png

1.3 配置环境变量

桌面图标此电脑右键->属性->高级系统设置->环境变量->找到系统(或者用户)中的名称为PATH的变量双击->双击最下面空白->添加上三个对应的路径(每个人的文件路径不同)

image-20240505120900-1s1at5c.png

image-20240505121137-ovxbgin.png

image-20240505121457-qiw1k50.png

1.4 测试

1.4.1 测试环境变量

测试一下环境变量是否配置成功,有输出版本信息的就成功了,没有的话,建议检测一下环境变量的路径。

make -v
riscv64-unknown-elf-gcc -v

1.4.2 编译HelloWorld

编译一个HelloWorld看看

  1. 用VScode打开aithinker_Ai-M6X_SDK文件夹
  2. 用集成终端打开HelloWorld文件夹
  3. 在终端中输入make,编译文件
  4. 检查输出是否100%,输出了xxx.bin文件和xxx.elf文件,并且没有红色错误文件。

image-20240505123128-ntwnxwk.png

2. 祖传点灯

2.1 查原理图

要点灯肯定先看看灯的电路,查一下官方文档:docs.ai-thinker.com/_media/nodemcu-ai-m61-32s-kit_v1.1.pdf

image-20240505123601-32vgwuh.png

板子上有两种灯: 一种是普通LED灯,对应的IO29、IO27。 一种是RGB灯,对应的是IO12、IO14、IO15、分别表示RGB的不同的值

2.2 GPIO控制

看一下论坛的GPIO控制方法:(七)零基础开发小安派-Eyes-S1【外设篇】——GPIO输入输出 - 小安派S1&M61教程合集

教程中的GPIO控制方法写的很详细了,修改一下直接用就好,可以把helloworld的文件拷贝一份,修改文件夹名称为:LED

然后修改一下main.c代码:

#include "bflb_gpio.h"   //gpio头文件
#include "bflb_mtimer.h" //mtimer定时器头文件,可使用里面的延时函数
#include "board.h"       //开发板头文件,包含LHAL库等

struct bflb_device_s *gpio; //初始化一个结构体指针作为外设句柄命名为gpio,

int main(void)
{
    board_init(); //开发板初始化

    gpio = bflb_device_get_by_name("gpio"); //给前面的gpio句柄赋值对外设进行操作,这里的名字
                                            //可使用的外设全部命名在bl616_device_table这个结构体数组里,我们所有使用的外设命名与上面列表中支持的外设列表
                                            //也可以在函数定义里查看所有可支持的外设名称,命名一定要匹配。

    printf("gpio output\r\n"); //printf函数已经重定义为输出在串口0上,我们作为LOG查看

    bflb_gpio_init(gpio, GPIO_PIN_29, GPIO_OUTPUT | GPIO_PULLUP | GPIO_SMT_EN | GPIO_DRV_0);
    //gpio初始化,第一个参数为句柄,第二个参数为pin,第三个为GPIO的配置,这里配置为输出、浮空、滤波打开、驱动等级0

    bflb_gpio_init(gpio, GPIO_PIN_27, GPIO_OUTPUT | GPIO_PULLUP | GPIO_SMT_EN | GPIO_DRV_0);
    //gpio初始化,第一个参数为句柄,第二个参数为pin,第三个为GPIO的配置,这里配置为输出、浮空、滤波打开、驱动等级0

    while (1) {
        bflb_gpio_set(gpio, GPIO_PIN_29); //将pin29设置为高电平
        bflb_mtimer_delay_ms(2000); //延迟2000毫秒,也就是2秒
        bflb_gpio_reset(gpio, GPIO_PIN_29); //将pin29设置为低电平
        bflb_mtimer_delay_ms(2000); //延迟2000毫秒,也就是2秒
        bflb_gpio_set(gpio, GPIO_PIN_27);
        bflb_mtimer_delay_ms(2000);
        bflb_gpio_reset(gpio, GPIO_PIN_27);
        bflb_mtimer_delay_ms(2000);
    }
}

2.3 编译LED闪烁程序

  1. 修改一下cmake.list文件夹的工程名称和flash_prog_cfg.ini文件的bin文件名称image-20240505130013-4b6msik.png

    image-20240505133926-70vt9qq.png

  2. 打开LED文件夹的终端

  3. 输入make编译

  4. 看到100%表示成功

2.4 刷写程序

  1. 打开控制面板->设备管理器->端口;查看那个CH340的端口号是多少。

    image-20240505130633-5xiytg7.png

  2. 数据线连接板子

  3. 按住IO2按钮不松

  4. 按住EN按钮等两秒,松开EN按钮

  5. 在终端中输入make flash CHIP=bl616 COMX=COM17,刷写程序 (注意:COM17修改为你的设备端口)

  6. 在端口中输出All Success 表示刷写成功,如下图:

    image-20240505130845-xtrevz5.png

  7. 松开IO2按钮,单击EN按钮,程序开始执行。

  8. 观察LED灯闪烁现象

    fbc0d4fbadee592bde1b3404172674c-20240505131222-xmfxxsk.jpg

回复

使用道具 举报

wukong50 | 2024-5-27 12:36:58 | 显示全部楼层
不错不错
回复

使用道具 举报

timo | 2024-5-29 15:26:30 | 显示全部楼层
恭喜点灯
回复

使用道具 举报

楚华 | 2024-6-7 14:26:22 | 显示全部楼层
作业已完成
回复 支持 反对

使用道具 举报

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

本版积分规则