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

[复制链接]
查看2120 | 回复9 | 2024-5-2 14:26:41 | 显示全部楼层 |阅读模式

1.前言

第一次用Ai-M61-32S,中途可能有失误,请多多指教

1.1 准备工作

1.2 硬件连接

使用一根可以传输数据的Type-C数据线连接开发板与电脑即可,如图所示

IMG_20240502_131417

2 开始点灯

2.1 原理图

写程序之前先看一下原理图

image-20240502131800107

由图可得信息:

  • B、R、G三个LED灯的引脚分别为IO15、IO12、IO14
  • B、R、G三个LED灯接在一个地上,所以欲使LED灯点亮,IO15、IO12、IO14给一个高电平

2.2打开项目案例

首先进入GPIO案例的目录

\AiPi-Open-Kits\aithinker_Ai-M6X_SDK\examples\peripherals\gpio

然后会看到目录下有两个文件夹

image-20240502132329290

根据文件夹的名字可知,gpio_input_output文件夹是符合我们需要的,接下来复制该文件夹

image-20240502132457364

并重命名为gpio_input_outputRGB

image-20240502132520271

然后进入gpio_input_outputRGB文件夹,会发现如下文件

image-20240502132624155

然后打开CMakeLists.txt文件,修改其中的项目名称

image-20240502132722267

image-20240502132808426

将该名称修改为文件夹名称,然后点击保存(或Ctrl+S)

2.3编写mian.c

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

struct bflb_device_s *gpio;

int main(void)
{
    board_init();

    gpio = bflb_device_get_by_name("gpio"); 
    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);

    while (1) {
            bflb_gpio_set(gpio, GPIO_PIN_12);
            bflb_mtimer_delay_ms(500);
            bflb_gpio_reset(gpio, GPIO_PIN_12);
            bflb_mtimer_delay_ms(500);
            bflb_gpio_set(gpio, GPIO_PIN_14);
            bflb_mtimer_delay_ms(500);
            bflb_gpio_reset(gpio, GPIO_PIN_14);
            bflb_mtimer_delay_ms(500);
            bflb_gpio_set(gpio, GPIO_PIN_15);
            bflb_mtimer_delay_ms(500);
            bflb_gpio_reset(gpio, GPIO_PIN_15);
            bflb_mtimer_delay_ms(500);

    }
}

写完main.c之后保存关闭。

2.4 编译

点击资源管理器的地址栏

image-20240502132957277

接着删除地址栏内的内容

image-20240502133051782

然后输入CMD(全大写或者全小写均可,其他混用没试过)

image-20240502133444165

然后回车(Enter),打开终端

image-20240502133553320

然后输入make clean

image-20240502133636077

接着输入make

image-20240502133859781

发现出现两个错误

2.5 排错(无错则跳过该章节)

我们向上查看,发现错误地方

image-20240502134021860

根据 新手小白Ai-M61-32S各类报错解决汇总及点灯获取排错方法:

首先打开目录E:\aitkink\AiPi-Open-Kits\aithinker_Ai-M6X_SDK\bsp\board\bl616dk

高亮区域为SDK下的目录,会看到如下文件和文件夹

image-20240502134513681

然后打开board.c,注释掉#include "lwip/dns.h"

image-20240502134608944

接着再注释掉ip_addr_t dns_addr;(注意行号)

image-20240502134651952

然后保存关闭

接着我们回到刚刚的gpio_input_outputRGB文件夹,按照刚刚的方法打开CMD(没有关掉可以不用再打开)

接着先make clean

image-20240502134904059

然后再输入make

image-20240502135006466

看到Built target combine代表编译成功

2.6 烧录程序

保持着CMD不要关闭,然后回到桌面,鼠标右键此电脑

image-20240502135252573

点击管理,然后按照下图方式查看串口号

image-20240502135526102

由图可知我的串口号是COM7

然后我们在刚刚的命令行下输入make flash COMX=COM7,切记!不要回车!不要回车!不要回车!

然后我们按下单片机的右侧按钮,按钮左上角写着IO2的丝印,按下不要松开

然后再按下左边的按钮,按钮右上角写着EN的丝印,按一下之后松开即可,(IO2此时可以松开

然后回车命令行开始下载

image-20240502140005998

2.7 实验结果

接下来我们拔下数据线,再重新插上,实现一个物理意义的复位

就可以看到我们的代码效果,三种颜色的灯轮流点亮

1714629773275

感谢查看

回复

使用道具 举报

干簧管 | 2024-5-2 14:43:26 | 显示全部楼层
回复

使用道具 举报

爱笑 | 2024-5-17 09:57:34 | 显示全部楼层
怎么图片全部裂开了!
用心做好保姆工作
回复 支持 反对

使用道具 举报

雨轩 | 2024-5-19 11:59:17 | 显示全部楼层
爱笑 发表于 2024-5-17 09:57
怎么图片全部裂开了!

自己在github搭的图床,速度慢,多等等就好
回复 支持 反对

使用道具 举报

知行合一 | 2024-5-24 15:27:57 | 显示全部楼层
完成任务了
回复 支持 反对

使用道具 举报

sansui | 2024-5-27 14:04:59 | 显示全部楼层
棒棒的
回复

使用道具 举报

7788 | 2024-6-6 16:00:33 | 显示全部楼层
666
回复

使用道具 举报

楚华 | 2024-6-7 14:24:37 | 显示全部楼层
入坑了
回复

使用道具 举报

noonezero | 2024-7-27 21:40:25 | 显示全部楼层
很详细
回复

使用道具 举报

wukong50 | 2024-7-29 13:34:26 | 显示全部楼层
不错
回复

使用道具 举报

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

本版积分规则