终于点亮了M61小板,好多疑问

[复制链接]
查看1203 | 回复7 | 2023-11-21 13:38:36 | 显示全部楼层 |阅读模式

使用make flash命令行下载固件,个人认为特别方便,命令行同样是调用cube软件的功能,避免工作窗口频繁切换

flash下载

flash下载


在flash_prog_cfg.ini中,改boot2_isp_mode=1换成0  ,似乎就不提示下载过程按一下按钮了(总是出错未成功过)
应该是我把小安派和M61小板教程搞混了,因为在M61小板上找不到标记reset的按钮,明确的一个按钮是EN钮
是不是CH340的DTR脚代表了某些功能?

config文件修改

config文件修改



具体代码,找了申请板子时候安装的一个,其他都不变,只是在main函数开头这样写

int main(void)
{

    board_init();

    gpio = bflb_device_get_by_name("gpio");
    bflb_gpio_init(gpio, GPIO_PIN_27, GPIO_OUTPUT | GPIO_PULLUP | GPIO_SMT_EN | GPIO_DRV_0);

    while (1) {
        printf("GPIO set to 1\r\n");
        bflb_gpio_set(gpio, GPIO_PIN_27);
        bflb_mtimer_delay_ms(200);

        printf("GPIO set to 0\r\n");
        bflb_gpio_reset(gpio, GPIO_PIN_27);
        bflb_mtimer_delay_ms(200);
    }


    // audio_init();
    // audio_pcm_init();
    // es8388_voice_init();



实际代码

实际代码


结果是RGB灯的蓝色在闪,红色常亮。

实物

实物



根据电路图,RGB灯应该是IO12 14 15  管脚对不上

另一个不成功的现象是,蓝灯一秒一次短暂闪, 和程序对不上。倒是类似于某个定时器在工作。
board_init();这里是照搬的,可能不对。

回复

使用道具 举报

bd4kc | 2023-11-21 13:42:57 | 显示全部楼层
感谢群里大家指点,一步一步仔细教我。
回复 支持 反对

使用道具 举报

Mr.Tail | 2023-11-21 13:44:06 | 显示全部楼层
bd4kc 发表于 2023-11-21 13:42
感谢群里大家指点,一步一步仔细教我。

如果搞定了 大佬也分享一下呗~
回复 支持 反对

使用道具 举报

bd4kc | 2023-11-21 14:14:42 | 显示全部楼层
搞定了一个SDK里面最简单的例子GPIO
#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_27, 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);

    while (1) {
        bflb_gpio_set(gpio, GPIO_PIN_27);
        //printf("GPIO_PIN_1=%x\r\n", bflb_gpio_read(gpio, GPIO_PIN_1));
        bflb_mtimer_delay_ms(500);

        bflb_gpio_reset(gpio, GPIO_PIN_27);
       // printf("GPIO_PIN_1=%x\r\n", bflb_gpio_read(gpio, GPIO_PIN_1));
        bflb_mtimer_delay_ms(500);
    }
}


这个目录下的
D:\AiPiEasyStartV1.1.1\AiPi-Open-Kits\aithinker_Ai-M6X_SDK\examples\peripherals\gpio\gpio_input_output

6.jpg

打开,改改管脚,0改成27
定时时间我都改了500ms
然后
make
make flash COMX=COM3
一次性下载成功。
成功控制GPIO 27管脚闪烁。
5.jpg


回复 支持 反对

使用道具 举报

bd4kc | 2023-11-21 14:37:26 | 显示全部楼层
int main(void)
{
    board_init();

    gpio = bflb_device_get_by_name("gpio");
    printf("gpio output\r\n");
    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);
    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);

    while (1) {
        //bflb_gpio_set(gpio, GPIO_PIN_27);
        //printf("GPIO_PIN_1=%x\r\n", bflb_gpio_read(gpio, GPIO_PIN_1));
        bflb_gpio_set(gpio, GPIO_PIN_27);
        bflb_gpio_reset(gpio, GPIO_PIN_29);
        bflb_gpio_reset(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_27);
        bflb_gpio_set(gpio, GPIO_PIN_29);
        bflb_gpio_reset(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_27);
        bflb_gpio_reset(gpio, GPIO_PIN_29);
        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_27);
        bflb_gpio_reset(gpio, GPIO_PIN_29);
        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_27);
        bflb_gpio_reset(gpio, GPIO_PIN_29);
        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);

        //bflb_gpio_reset(gpio, GPIO_PIN_27);
       // printf("GPIO_PIN_1=%x\r\n", bflb_gpio_read(gpio, GPIO_PIN_1));
        //bflb_mtimer_delay_ms(200);
    }
}




进一步,5个灯都用起来,发现 SET是点亮,是高电平吗?原理图看到,是的
7.jpg

编号是27 29 12 14 15
这个程序跑起来比较绚烂,5个灯依次亮灭



回复 支持 反对

使用道具 举报

bd4kc | 2023-11-21 14:40:02 | 显示全部楼层
再次理顺一下:
1、写好程序
2、make
3、按住IO2按钮,插上USB线
4、make flash COMX=COM3
5、断电重启以后,程序就运行了。

回复 支持 反对

使用道具 举报

bd4kc | 2023-11-21 15:26:21 | 显示全部楼层

视频到B站了

【Ai-M61板子点亮5个LED】 https://www.bilibili.com/video/B ... 39192f2150ec23928df

回复 支持 反对

使用道具 举报

wbteve | 2024-7-26 19:05:14 | 显示全部楼层
牛逼
回复

使用道具 举报

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

本版积分规则