【祖传点灯】安信可Ai-M61-32S + 点灯,交作业

[复制链接]
查看521 | 回复7 | 2024-5-13 16:08:59 | 显示全部楼层 |阅读模式

收到了安信可寄来的安信可Ai-M61-32S模组,开始点灯。

一 资料查询下载

1.Ai-M61-32S开发板原理图官网链接[https://docs.ai-thinker.com/ai_m61](还可以下载其他有用的资料,不过这边下载是为了搞清楚哪几个io口能点灯

屏幕截图2024-05-02212628.png

2.二次开发SDK源码地址:https://github.com/Ai-Thinker-Open/aithinker_Ai-M6X_SDK

屏幕截图2024-05-13132749.png

3.VS code

下载链接 https://code.visualstudio.com

屏幕截图2024-05-02222749.png

4.开发环境搭建

墙裂推荐使用大佬的傻瓜式工具,其他的实在太麻烦了。

[更新帖]AiPiEasyStart一键搭建开发环境工具

https://bbs.ai-thinker.com/forum.php?mod=viewthread&tid=41861 (出处: 物联网开发者社区-安信可论坛)

image.png

5.例程修改点灯

打开前面安装完成的目录 image.png

按如下目录找到gpio使能的例程 屏幕截图2024-05-13152337.png

如图所示打开终端

image.png

输入make指令后有如下图所示报错,ctrl加右键跳转到报错地方,双斜杠注释掉 image.png

再次编译,仍有报错,同样双斜杠注释 image.png

再次编译,报找不到指定文件

同样参照大佬教程注释即可

image.png

image.png

输入make,编译成功后如下

image.png

根据原理图可知Ai-M61-32S有五个灯,分别为IO12,IO14,IO15,IO27,IO29。直接将下面代码覆盖main.c image.png

#include "bflb_gpio.h"
#include "board.h"struct bflb_device_s *gpio;int main(void)
{
board_init();gpio = bflb_device_get_by_name("gpio");
printf("gpio output\r\n");
bflb_gpio_init(gpio, GPIO_PIN_12, 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_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_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);
while (1) {
    bflb_gpio_set(gpio, GPIO_PIN_12);
    bflb_mtimer_delay_ms(1000);
    bflb_gpio_reset(gpio, GPIO_PIN_12);
    bflb_gpio_set(gpio, GPIO_PIN_14);
    bflb_mtimer_delay_ms(1000);
    bflb_gpio_reset(gpio, GPIO_PIN_14);
    bflb_gpio_set(gpio, GPIO_PIN_15);
    bflb_mtimer_delay_ms(1000);
    bflb_gpio_reset(gpio, GPIO_PIN_15);
    bflb_gpio_set(gpio, GPIO_PIN_27);
    bflb_mtimer_delay_ms(1000);
    bflb_gpio_reset(gpio, GPIO_PIN_27);
    bflb_gpio_set(gpio, GPIO_PIN_29);
    bflb_mtimer_delay_ms(1000);
    bflb_gpio_reset(gpio, GPIO_PIN_29);
    bflb_gpio_set(gpio, GPIO_PIN_12);
}
gpio = bflb_device_get_by_name("gpio");
printf("gpio output\r\n");
bflb_gpio_init(gpio, GPIO_PIN_12, 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_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_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);
while (1) {
    bflb_gpio_set(gpio, GPIO_PIN_12);
    bflb_mtimer_delay_ms(1000);
    bflb_gpio_reset(gpio, GPIO_PIN_12);
    bflb_gpio_set(gpio, GPIO_PIN_14);
    bflb_mtimer_delay_ms(1000);
    bflb_gpio_reset(gpio, GPIO_PIN_14);
    bflb_gpio_set(gpio, GPIO_PIN_15);
    bflb_mtimer_delay_ms(1000);
    bflb_gpio_reset(gpio, GPIO_PIN_15);
    bflb_gpio_set(gpio, GPIO_PIN_27);
    bflb_mtimer_delay_ms(1000);
    bflb_gpio_reset(gpio, GPIO_PIN_27);
    bflb_gpio_set(gpio, GPIO_PIN_29);
    bflb_mtimer_delay_ms(1000);
    bflb_gpio_reset(gpio, GPIO_PIN_29);
    bflb_gpio_set(gpio, GPIO_PIN_12);
}
}

我的端口为COM7,在按住io2按键后按下en按键后输入 make flash COMX=7

屏幕截图2024-05-13155553.png

实现效果如下 VID_20240513_160422.mp4

回复

使用道具 举报

bzhou830 | 2024-5-13 17:32:34 | 显示全部楼层
帖子写的挺详细,赞一个
选择去发光,而不是被照亮
回复 支持 反对

使用道具 举报

hrqwe | 2024-5-14 08:21:40 | 显示全部楼层
视频好像看不到了
日拱一卒,功不唐捐
回复 支持 反对

使用道具 举报

hdydy | 2024-5-14 08:39:25 | 显示全部楼层
点赞
回复

使用道具 举报

1055173307 | 2024-5-14 11:30:47 | 显示全部楼层
回复

使用道具 举报

WT_0213 | 2024-5-17 08:42:01 | 显示全部楼层
点赞
回复

使用道具 举报

知行合一 | 2024-5-27 21:28:57 | 显示全部楼层
恭喜点灯
回复

使用道具 举报

noonezero | 昨天 08:24 | 显示全部楼层
真详细
回复

使用道具 举报

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

本版积分规则