【板子开箱】Ai-M61-32S 点灯工程师达成

[复制链接]
查看529 | 回复5 | 2023-11-20 22:27:12 | 显示全部楼层 |阅读模式
本帖最后由 dimwalker 于 2023-11-21 14:48 编辑

本人只有编程知识,以往没有接触过开发板相关的开发,应该算得上是小白。
相信拿到板子的人都搭建好编译环境,就差最后一步烧录了。
教程:http://bbs.ai-thinker.com/forum. ... 3D2&_dsign=7fea3002
但是实际上,烧录前,还需要几个步骤,

1、驱动下载
最开始是感叹号,无法识别,在微信群资讯群友后得知需要ch340驱动才能正常识别。
可以在某度搜索“ch340驱动”,某华中可以下载驱动。记着此时的com口,后续用到
QQ图片20231120215404.png

2、使用gitbash编译
在我发的活动帖子里有提及到,编译weather demo的命令当中,存在“cp”这个linux下的复制文件命令,需要改为“cpoy”。
不过后来有群友提出,使用gitbash编译,就可以在window下正常编译,免去修改代码的麻烦!
在电灯示例代码文件夹 AiPi-Open-Kits\aithinker_Ai-M6X_SDK\examples\peripherals\gpio\gpio_input_output,右键-> git bash
微信图片_20231120215415.png
对了,由于我不想将编译工具添加到环境变量,可以像我用以下代码临时设置一下,在打开的gitbash下生效。
  1. export  PATH=/D/WorkArea/Private_Project/AiPi-Open-Kits/aithinker_Ai-M6X_SDK/toolchain_gcc_t-head_windows/bin:/D/WorkArea/Private_Project/AiPi-Open-Kits/aithinker_Ai-M6X_SDK/tools/make:/D/WorkArea/Private_Project/AiPi-Open-Kits/aithinker_Ai-M6X_SDK/tools/ninja:$PATH
复制代码

3、无法继续的weather demo
由于拿到板子后,作为小白我一无所知,希望继续完成教程的烧录步骤,研究了一下说明书,长按烧录键再按复位键,然后执行烧录代码。
  1. make flash COMX=COM6
复制代码
烧进去了,但是这个demo是需要界面的!此板子无法完成。单wifi配置这一步我就研究不出来,果断放弃。

4、开始电灯
说明书可以在官方文档https://docs.ai-thinker.com/ai_m61中找到,
QQ图片20231120215619.png
说明书如何看?嗯……只有这页是看的懂得……
QQ图片20231120215740.png
vscode打开上面gitbash所在路径的main.c文件
可以看到两句显眼的代码,他们分别代表初始化一个树输出,一个输入。
  1. bflb_gpio_init(gpio, GPIO_PIN_0, GPIO_OUTPUT | GPIO_PULLUP | GPIO_SMT_EN | GPIO_DRV_0);
  2. bflb_gpio_init(gpio, GPIO_PIN_1, GPIO_INPUT | GPIO_PULLUP | GPIO_SMT_EN | GPIO_DRV_0);
复制代码
问一下chatgpt,具体意思解析
  • bflb_gpio_init: 这是一个函数调用,可能是用于初始化GPIO引脚的函数。
  • gpio: 这是指定要初始化的GPIO引脚的参数。
  • GPIO_PIN_0: 这是具体要初始化的引脚号,可能是第一个引脚(0号引脚)。
  • GPIO_OUTPUT: 这是一个标志位,表示将引脚配置为输出模式。
  • GPIO_PULLUP: 这是一个标志位,表示启用上拉电阻。
  • GPIO_SMT_EN: 这是一个标志位,可能表示启用表面贴装技术(Surface Mount Technology)。
  • GPIO_DRV_0: 这是一个标志位,可能表示选择驱动能力的设置,0可能表示较低的驱动能力。

回到说明书,可以看到目前我只能控制红绿蓝(12,14,15)三灯输出,其他一概无能为力

  • 修改代码
    1. #include "bflb_gpio.h"
    2. #include "board.h"
    3. struct bflb_device_s *gpio;
    4. int main(void)
    5. {
    6.     board_init();
    7.     gpio = bflb_device_get_by_name("gpio");
    8.     printf("gpio output\r\n");
    9.     bflb_gpio_init(gpio, GPIO_PIN_12, GPIO_OUTPUT);  //红
    10.     bflb_gpio_init(gpio, GPIO_PIN_14, GPIO_OUTPUT);  //绿
    11.     bflb_gpio_init(gpio, GPIO_PIN_15, GPIO_OUTPUT);  //蓝
    12.     while (1) {
    13.         lightup(GPIO_PIN_12);
    14.         lightup(GPIO_PIN_14);
    15.         lightup(GPIO_PIN_15);
    16.     }
    17. }
    18. int lightup(int gpio_pin)
    19. {
    20.     bflb_gpio_set(gpio, gpio_pin);
    21.     printf("GPIO_PIN_%i lightup\r\n", gpio_pin);
    22.     bflb_mtimer_delay_ms(1000);
    23.     bflb_gpio_reset(gpio, gpio_pin);
    24.     printf("GPIO_PIN_%i lightout\r\n", gpio_pin);
    25.     bflb_mtimer_delay_ms(1000);
    26. }
    复制代码

  • 烧录
执行代码前,记得先长按烧录键,再短按复位键
  1. make flash COMX=COM6
复制代码
  • 烧录成功
QQ图片20231120221003.png
  • 按一下复位键,点成成功
2dfe359313d5bf71de8b8c42acdefd6a.mp4_thumbs.jpg

5、遗留问题
学习过程中,遇到些未解决的问题
  • 如何设置wifi
  • 如何连接串口ttl
  • 官网说有at指令,但是没有文档
回复

使用道具 举报

jkernet | 2023-11-21 10:03:17 | 显示全部楼层
感谢分享!
回复

使用道具 举报

干簧管 | 2023-11-21 10:20:41 | 显示全部楼层
点赞
回复

使用道具 举报

lvxinjia123 | 2023-11-21 11:19:21 | 显示全部楼层
你的板子都到了,我的贴子发了好几天都没给审核
回复 支持 1 反对 0

使用道具 举报

dimwalker | 2023-11-21 11:48:28 | 显示全部楼层
我发觉main.c的代码经常丢失,是咋回事?
回复 支持 反对

使用道具 举报

dimwalker | 2023-11-21 14:59:52 | 显示全部楼层
dimwalker 发表于 2023-11-21 11:48
我发觉main.c的代码经常丢失,是咋回事?

终于知道怎么写代码了,要在工具栏点“代码”弹出的框写代码才能正常。
否则在正文编辑,粘贴就会丢代码。
回复 支持 反对

使用道具 举报

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

本版积分规则