本帖最后由 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盘独立一个文件夹了
然后要改拉取路径哈!!!
然后再去分别执行命令
先cd进入文件夹
然后第一条
第一条很快,然后开始第二条,大概等了几分钟吧,千万别以为卡了,有实时下载的,
接下来进入下一个目录:cd aithinker_Ai-M6X_SDK/
依次执行 git submodule init 和git submodule update
第二步跟之前一样,要等的哈
现在这样看起来就是结束了,继续下一步看看哈
保持刚刚的目录不变,输入下面一串
git clone https://gitee.com/bouffalolab/toolchain_gcc_t-head_windows.git
开始新一轮等待...
像这样就是搞定了↓(我真是太欣慰了)
接下来是加入三条路径到环境变量
我是一个懒蛋哈,win加q搜索环境变量
弹出的窗口下边就有按钮
依次加入三项
aithinker_Ai-M6X_SDK\toolchain_gcc_t-head_windows\bin
aithinker_Ai-M6X_SDK\tools\make
aithinker_Ai-M6X_SDK\tools\ninja
要把make这条移动到最上端
保存之后返回桌面,按住shift然后鼠标右键打开powershell窗口,输入make -v,不出意外的我出意外了
好吧,或许是因为我没有重启电脑,我来到了安装盘,在E盘根目录下打开powershell,然后make -v
接下来一步也是没问题的,继续输入riscv64-unknown-elf
看起来这样环境就算搞完了,然后就可以选择自己喜欢的程序编译了
编译
examples下有很多例程哈大佬们估计都用上了我这还看不懂咋使呢,还是先从简单的开始吧!
万板第一步,点灯走起,看一下引脚,借个图
注意哈,这灯不是ws2812b那个一个引脚搞定的!!!
在这个路径下,有gpio的例程,略微翻了一下,真多,真丰富!
E:\AiPi\AiPi-Open-Kits\aithinker_Ai-M6X_SDK\examples\peripherals\gpio
我习惯是复制一份备份再修改,然后修改main.c里面的引脚,简单控制一下高低电平就ok了~
点灯
这是默认的mian.c哈,还是比较容易读懂的
附上我修改的亮灯代码
#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不出来了,环境变量也修改了,电脑也重启过了!没用的删掉了,奇了怪了???
5.9日更新:换台电脑重装环境好了,使用大佬的一键搭建工具,嘎嘎好用嗷[更新帖]AiPiEasyStart一键搭建开发环境工具
距离点灯只差一步了!
打开main.c所在文件夹的资源管理器,然后在路径上输入cmd,这样就直接在这个路径了
各位应该make一下,然后在开发板先按住IO2,然后按EN,然后松开EN,松开IO2,开发板就进入下载模式了,然后make flash一下对应的串口就ok!
像这样,我这里错一次是因为我用大佬的一键搭建工具把make改成mmmmake了
看见上图就是成功了,按一下EN程序就开始运行啦
点灯展示:
接下来是讲一下我遇到的问题哈
首先是编译报错#lwip/dns.h参考编译报错#lwip/dns.h的解决办法
修改在这个路径D:\AIPI\AiPi-Open-Kits\aithinker_Ai-M6X_SDK\bsp\board\bl616dk里面的board.c文件
然后编译通过,但是最后还是有点小问题,见下图
接下来修改这里D:\AIPI\AiPi-Open-Kits\aithinker_Ai-M6X_SDK
找到project.build文件,用记事本打开就行
把这三行注释一下,保存后make clean,然后再make,就跟正常的一样喽
其他玩法
太多了,真的太多了,有wifi有蓝牙,简直是要啥有啥功能全面,后边的内容就慢慢学习再补充喽~