收到了安信可寄来的安信可Ai-M61-32S模组,开始点灯。
一 资料查询下载
1.Ai-M61-32S开发板原理图官网链接[https://docs.ai-thinker.com/ai_m61](还可以下载其他有用的资料,不过这边下载是为了搞清楚哪几个io口能点灯)
2.二次开发SDK源码地址:https://github.com/Ai-Thinker-Open/aithinker_Ai-M6X_SDK
3.VS code
下载链接 https://code.visualstudio.com
4.开发环境搭建
墙裂推荐使用大佬的傻瓜式工具,其他的实在太麻烦了。
[更新帖]AiPiEasyStart一键搭建开发环境工具
https://bbs.ai-thinker.com/forum.php?mod=viewthread&tid=41861
(出处: 物联网开发者社区-安信可论坛)
5.例程修改点灯
打开前面安装完成的目录
按如下目录找到gpio使能的例程
如图所示打开终端
输入make指令后有如下图所示报错,ctrl加右键跳转到报错地方,双斜杠注释掉
再次编译,仍有报错,同样双斜杠注释
再次编译,报找不到指定文件
同样参照大佬教程注释即可
输入make,编译成功后如下
根据原理图可知Ai-M61-32S有五个灯,分别为IO12,IO14,IO15,IO27,IO29。直接将下面代码覆盖main.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");
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
实现效果如下