摸鱼了大半年,把去年收到的Ai-M61-32SU拿出来擦灰,点灯测试一下
环境搭建
之前搭过一次,但是环境被我弄乱了,又重新搭了一次环境
就不说了,说多了都是泪,搭建环境最烦了
新建工程
把aithinker_Ai-M6X_SDK/examples/peripherals/gpio/gpio_input_output文件夹复制一份
在aithinker_Ai-M6X_SDK目录下新建一个MyProject文件夹,以后我的项目就放在这里
把刚才复制的文件夹粘贴到MyProject,并把项目名重命名为led
修改CMake文件,最后一行的project括号内修改为本项目名led
修改烧录的配置文件flash_prog_cfg.ini,[FW]下的filedir表示要烧录进去的二进制固件路径,文件名同样修改为项目名led_bl616.bin
修改Makefile文件,本项目的前两级目录才是aithinker_Ai-M6X_SDK也就是BL_SDK_BASE的路径
最后修改main.c文件,简单写一下
#include "board.h"
#include "bflb_gpio.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);
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_12);
bflb_gpio_reset(gpio, GPIO_PIN_14);
bflb_gpio_reset(gpio, GPIO_PIN_15);
bflb_mtimer_delay_ms(200);
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(200);
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(200);
}
}
编译烧录
在项目文件夹内make,出现#lwip/dns.h没有找到,在论坛里搜索一下
参考【关于编译报错#lwip/dns.h找不到的解决办法:https://bbs.ai-thinker.com/forum.php?mod=viewthread&tid=43757&highlight=%E6%8A%A5%E9%94%99】
更改后再编译一次
编译成功
用USB连接电脑和M61
通过串口助手看到USB转串口的是COM9
先按住IO2按钮,再按EN按钮,进入烧录模式
再执行make flash CHIP=bl616 COMX=COM9进行烧录
烧录成功
实物现象
再按一次EN按钮
rgb灯珠里的红蓝绿灯交替点亮~