本帖最后由 dimwalker 于 2023-11-21 14:48 编辑
本人只有编程知识,以往没有接触过开发板相关的开发,应该算得上是小白。
相信拿到板子的人都搭建好编译环境,就差最后一步烧录了。
教程:http://bbs.ai-thinker.com/forum. ... 3D2&_dsign=7fea3002
但是实际上,烧录前,还需要几个步骤,
1、驱动下载
最开始是感叹号,无法识别,在微信群资讯群友后得知需要ch340驱动才能正常识别。
可以在某度搜索“ch340驱动”,某华中可以下载驱动。记着此时的com口,后续用到
2、使用gitbash编译
在我发的活动帖子里有提及到,编译weather demo的命令当中,存在“cp”这个linux下的复制文件命令,需要改为“cpoy”。
不过后来有群友提出,使用gitbash编译,就可以在window下正常编译,免去修改代码的麻烦!
在电灯示例代码文件夹 AiPi-Open-Kits\aithinker_Ai-M6X_SDK\examples\peripherals\gpio\gpio_input_output,右键-> git bash
对了,由于我不想将编译工具添加到环境变量,可以像我用以下代码临时设置一下,在打开的gitbash下生效。
- 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
由于拿到板子后,作为小白我一无所知,希望继续完成教程的烧录步骤,研究了一下说明书,长按烧录键再按复位键,然后执行烧录代码。
烧进去了,但是这个demo是需要界面的!此板子无法完成。单wifi配置这一步我就研究不出来,果断放弃。
4、开始电灯
说明书可以在官方文档https://docs.ai-thinker.com/ai_m61中找到,
说明书如何看?嗯……只有这页是看的懂得……
vscode打开上面gitbash所在路径的main.c文件
可以看到两句显眼的代码,他们分别代表初始化一个树输出,一个输入。
- bflb_gpio_init(gpio, GPIO_PIN_0, 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);
复制代码 问一下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)三灯输出,其他一概无能为力
- 修改代码
- #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); //红
- bflb_gpio_init(gpio, GPIO_PIN_14, GPIO_OUTPUT); //绿
- bflb_gpio_init(gpio, GPIO_PIN_15, GPIO_OUTPUT); //蓝
- while (1) {
- lightup(GPIO_PIN_12);
- lightup(GPIO_PIN_14);
- lightup(GPIO_PIN_15);
- }
- }
- int lightup(int gpio_pin)
- {
- bflb_gpio_set(gpio, gpio_pin);
- printf("GPIO_PIN_%i lightup\r\n", gpio_pin);
- bflb_mtimer_delay_ms(1000);
- bflb_gpio_reset(gpio, gpio_pin);
- printf("GPIO_PIN_%i lightout\r\n", gpio_pin);
- bflb_mtimer_delay_ms(1000);
- }
复制代码
执行代码前,记得先长按烧录键,再短按复位键
5、遗留问题
学习过程中,遇到些未解决的问题
- 如何设置wifi
- 如何连接串口ttl
- 官网说有at指令,但是没有文档
|