【祖传点灯】安信可Ai-M61-32S试玩+make问题

[复制链接]
查看396 | 回复5 | 2024-5-8 16:48:38 | 显示全部楼层 |阅读模式

本帖最后由 LUCA 于 2024-5-9 12:54 编辑

本帖最后由 LUCA 于 2024-5-9 11:03 编辑

本帖最后由 LUCA 于 2024-5-8 16:48 编辑

本帖最后由 LUCA 于 2024-5-7 17:30 编辑

本帖最后由 LUCA 于 2024-4-28 17:06 编辑

本帖最后由 LUCA 于 2024-4-28 16:39 编辑

又来了哈

申请了安信可Ai-M61-32S开发板,一看这介绍,这密密麻麻的功能,就想拥有的好吗

环境搭建

参照这篇文章描述,走一遍流程 零基础搭建小安派Windows 开发环境 - 小安派S1&M61教程合集 - 物联网开发者社区-安信可论坛 - Powered by Discuz! (ai-thinker.com) 安装git就跳过了哈,一路下一步选手 然后也是执行一下第一句话 git clone https://gitee.com/Ai-Thinker-Open/AiPi-Open-Kits.git 我是怕出幺蛾子,扔E盘独立一个文件夹了 然后要改拉取路径哈!!!

image.png

image.png

然后再去分别执行命令 先cd进入文件夹 然后第一条 image.png

第一条很快,然后开始第二条,大概等了几分钟吧,千万别以为卡了,有实时下载的,

image.png

image.png

接下来进入下一个目录:cd aithinker_Ai-M6X_SDK/ 依次执行 git submodule init 和git submodule update 第二步跟之前一样,要等的哈

image.png

image.png

image.png

现在这样看起来就是结束了,继续下一步看看哈

保持刚刚的目录不变,输入下面一串

git clone https://gitee.com/bouffalolab/toolchain_gcc_t-head_windows.git

开始新一轮等待...

image.png

像这样就是搞定了↓(我真是太欣慰了) image.png

接下来是加入三条路径到环境变量

我是一个懒蛋哈,win加q搜索环境变量 image.png

弹出的窗口下边就有按钮 image.png

image.png

依次加入三项

aithinker_Ai-M6X_SDK\toolchain_gcc_t-head_windows\bin aithinker_Ai-M6X_SDK\tools\make aithinker_Ai-M6X_SDK\tools\ninja

image.png

要把make这条移动到最上端

image.png

保存之后返回桌面,按住shift然后鼠标右键打开powershell窗口,输入make -v,不出意外的我出意外了 image.png

好吧,或许是因为我没有重启电脑,我来到了安装盘,在E盘根目录下打开powershell,然后make -v

image.png

接下来一步也是没问题的,继续输入riscv64-unknown-elf

image.png

看起来这样环境就算搞完了,然后就可以选择自己喜欢的程序编译了

编译

examples下有很多例程哈大佬们估计都用上了我这还看不懂咋使呢,还是先从简单的开始吧!

image.png

万板第一步,点灯走起,看一下引脚,借个图

注意哈,这灯不是ws2812b那个一个引脚搞定的!!!

在这个路径下,有gpio的例程,略微翻了一下,真多,真丰富!

E:\AiPi\AiPi-Open-Kits\aithinker_Ai-M6X_SDK\examples\peripherals\gpio image.png

我习惯是复制一份备份再修改,然后修改main.c里面的引脚,简单控制一下高低电平就ok了~

点灯

这是默认的mian.c哈,还是比较容易读懂的 image.png

附上我修改的亮灯代码

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

struct bflb_device_s *gpio; //声明了一个名为gpio的指向bflb_device_s结构的指针。这个指针将被用来操作GPIO(通用输入输出)设备

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

    gpio = bflb_device_get_by_name("gpio"); //拿到一个叫gpio的外设
    printf("gpio output\r\n");
    //初始化GIPO管脚功能
    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_init(gpio, GPIO_PIN_1, GPIO_INPUT | 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);

    while (1) {
        //bflb_gpio_set(gpio, GPIO_PIN_0);                               //设为高电平
        //printf("GPIO_PIN_1=%x\r\n", bflb_gpio_read(gpio, GPIO_PIN_1)); //读引脚电平并打印出来
        //bflb_mtimer_delay_ms(2000);                                    //等2秒

        //bflb_gpio_reset(gpio, GPIO_PIN_0);                             //复位(也就是设为低电平了)
        //printf("GPIO_PIN_1=%x\r\n", bflb_gpio_read(gpio, GPIO_PIN_1)); //又打印一遍
        //bflb_mtimer_delay_ms(2000);                                    //又等两秒

        bflb_gpio_set(gpio, GPIO_PIN_12);
        bflb_gpio_reset(gpio, GPIO_PIN_14);
        bflb_gpio_reset(gpio, GPIO_PIN_15);
        bflb_mtimer_delay_ms(1000);

        bflb_gpio_set(gpio, GPIO_PIN_12);
        bflb_gpio_set(gpio, GPIO_PIN_14);
        bflb_gpio_reset(gpio, GPIO_PIN_15);
        bflb_mtimer_delay_ms(1000);

        bflb_gpio_reset(gpio, GPIO_PIN_12);
        bflb_gpio_set(gpio, GPIO_PIN_14);
        bflb_gpio_reset(gpio, GPIO_PIN_15);
        bflb_mtimer_delay_ms(1000);

        bflb_gpio_reset(gpio, GPIO_PIN_12);
        bflb_gpio_set(gpio, GPIO_PIN_14);
        bflb_gpio_set(gpio, GPIO_PIN_15);
        bflb_mtimer_delay_ms(1000);

        bflb_gpio_reset(gpio, GPIO_PIN_12);
        bflb_gpio_reset(gpio, GPIO_PIN_14);
        bflb_gpio_set(gpio, GPIO_PIN_15);
        bflb_mtimer_delay_ms(1000);

        bflb_gpio_set(gpio, GPIO_PIN_12);
        bflb_gpio_reset(gpio, GPIO_PIN_14);
        bflb_gpio_set(gpio, GPIO_PIN_15);
        bflb_mtimer_delay_ms(1000);
    }
}

makefile

该生成目标文件了,看有的文章说要修改一下这个路径,很多文章也没提到,咱也不知道什么情况make不出来了,环境变量也修改了,电脑也重启过了!没用的删掉了,奇了怪了???image.png

5.9日更新:换台电脑重装环境好了,使用大佬的一键搭建工具,嘎嘎好用嗷[更新帖]AiPiEasyStart一键搭建开发环境工具

距离点灯只差一步了!

打开main.c所在文件夹的资源管理器,然后在路径上输入cmd,这样就直接在这个路径了

各位应该make一下,然后在开发板先按住IO2,然后按EN,然后松开EN,松开IO2,开发板就进入下载模式了,然后make flash一下对应的串口就ok!

image.png

像这样,我这里错一次是因为我用大佬的一键搭建工具把make改成mmmmake了 image.png

image.png

看见上图就是成功了,按一下EN程序就开始运行啦

点灯展示:

VID_20240509_11401200_00_00-00_00_30~1.gif

接下来是讲一下我遇到的问题哈

首先是编译报错#lwip/dns.h参考编译报错#lwip/dns.h的解决办法

修改在这个路径D:\AIPI\AiPi-Open-Kits\aithinker_Ai-M6X_SDK\bsp\board\bl616dk里面的board.c文件image.png

然后编译通过,但是最后还是有点小问题,见下图

image.png

接下来修改这里D:\AIPI\AiPi-Open-Kits\aithinker_Ai-M6X_SDK

找到project.build文件,用记事本打开就行 image.png

把这三行注释一下,保存后make clean,然后再make,就跟正常的一样喽

image.png

其他玩法

太多了,真的太多了,有wifi有蓝牙,简直是要啥有啥功能全面,后边的内容就慢慢学习再补充喽~

回复

使用道具 举报

爱笑 | 2024-5-8 17:32:43 | 显示全部楼层
还没解决吗?
用心做好保姆工作
回复 支持 反对

使用道具 举报

1055173307 | 2024-5-8 19:49:21 | 显示全部楼层
回复

使用道具 举报

hrqwe | 2024-5-8 22:58:33 | 显示全部楼层
编译失败报错是啥呢
日拱一卒,功不唐捐
回复 支持 反对

使用道具 举报

WT_0213 | 2024-5-9 08:29:49 | 显示全部楼层
可以严格按照其他教程走一遍试试,包括环境变量位置什么的。三个都放到最上面。
回复 支持 反对

使用道具 举报

Francisliu | 2024-5-9 13:37:23 | 显示全部楼层
很好。加油
回复

使用道具 举报

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

本版积分规则