本帖最后由 foxbox 于 2024-5-13 18:15 编辑
Git安装下载地址:Git - 下载 (git-scm.com)
安装完成后就可以在“开始”看到刚刚安装的git了
克隆仓库
仓库地址https://github.com/Ai-Thinker-Open/AiPi-Open-Kits
打开powershell,新建一个文件夹用于存储SDK源码,然后cd进入目录
执行命令,将源码从Gitee拉取到本地:
- git clone <https://gitee.com/Ai-Thinker-Open/AiPi-Open-Kits.git> -b master
复制代码
当出现done后代表克隆完成
拉取 M61 的 SDK 子模块
执行命令,进入 AiPi-Open-Kits/ 目录:
执行以下命令以初始化并更新子模块:
- git submodule init
- git submodule update
复制代码
拉取 M61 SDK 中的子模块
拉取文件输入如下命令
- cd aithinker_Ai-M6X_SDK/
- git submodule init
- git submodule update
复制代码
克隆工具链
完成后,输入如下指令,克隆适用 Windows 的编译工具链
- git clone <https://gitee.com/bouffalolab/toolchain_gcc_t-head_windows.git> -b master
复制代码
添加系统环境变量
按照以下步骤进行:
- 在计算机的搜索栏中输入“环境变量”并打开“编辑系统环境变量”。
- 在弹出的窗口中,点击“环境变量”按钮。
- 在“系统变量”区域,找到并双击“Path”变量。
- 点击“新建”,然后输入你的编译工具链的路径。
- aithinker_Ai-M6X_SDK\\\\toolchain_gcc_t-head_windows\\\\bin
- aithinker_Ai-M6X_SDK\\\\tools\\\\make
- aithinker_Ai-M6X_SDK\\\\tools\\\\ninja
复制代码
为了验证系统环境变量是否配置成功,请在命令行中运行以下命令:
- make -v
- riscv64-unknown-elf-gcc -v
复制代码
开始尝试点灯
使用vscode打开aithinker_Ai-M6X_SDK\examples\peripherals\gpio\gpio_input_output文件夹
通过文档可得知开发板上的RGB灯的IO
RGB 灯(红色灯接 IO12,绿色灯接 IO14,蓝色灯接 IO15,高电平有效)
代码
- #include "bflb_gpio.h"
- #include "bflb_mtimer.h"
- #include "bflb_pwm_v2.h"
- #include "bflb_clock.h"
- #include "board.h"
- #include "bl616_glb.h"
- struct bflb_device_s *gpio; // GPIO设备指针
- struct bflb_device_s *pwm; // PWM设备指针
- uint8_t rgb_pwmchs[3] = {0}; // 用于存储R、G、B的PWM通道数组
- uint16_t rgb_pwm = 0; // 用于调整PWM阈值的变量
- int main(void)
- {
- board_init(); // 初始化开发板
- gpio = bflb_device_get_by_name("gpio"); // 获取GPIO设备
- pwm = bflb_device_get_by_name("pwm_v2_0"); // 获取PWM设备
- // 初始化GPIO引脚用于PWM功能
- bflb_gpio_init(gpio, GPIO_PIN_12, GPIO_FUNC_PWM0 | GPIO_ALTERNATE | GPIO_FLOAT | GPIO_SMT_EN | GPIO_DRV_1); // 红色
- bflb_gpio_init(gpio, GPIO_PIN_14, GPIO_FUNC_PWM0 | GPIO_ALTERNATE | GPIO_FLOAT | GPIO_SMT_EN | GPIO_DRV_1); // 绿色
- bflb_gpio_init(gpio, GPIO_PIN_15, GPIO_FUNC_PWM0 | GPIO_ALTERNATE | GPIO_FLOAT | GPIO_SMT_EN | GPIO_DRV_1); // 蓝色
- // 配置PWM
- struct bflb_pwm_v2_config_s cfg = {
- .clk_source = BFLB_SYSTEM_XCLK,
- .clk_div = 40,
- .period = 2000, // 将周期设置为2000,以便更精细地控制亮度
- };
- bflb_pwm_v2_init(pwm, &cfg);
- // 启动PWM通道
- bflb_pwm_v2_channel_positive_start(pwm, PWM_CH0); // 红色
- bflb_pwm_v2_channel_positive_start(pwm, PWM_CH2); // 绿色
- bflb_pwm_v2_channel_positive_start(pwm, PWM_CH3); // 蓝色
- bflb_pwm_v2_start(pwm);
- rgb_pwmchs[0] = PWM_CH0;
- rgb_pwmchs[1] = PWM_CH2;
- rgb_pwmchs[2] = PWM_CH3;
- uint8_t color_index = 0; // 用于循环显示颜色
- while (1) {
- for (color_index = 0; color_index < 3; color_index++) {
- for (rgb_pwm = 0; rgb_pwm <= 2000; rgb_pwm++) {
- bflb_pwm_v2_channel_set_threshold(pwm, rgb_pwmchs[color_index], 0, rgb_pwm);
- bflb_mtimer_delay_ms(1);
- }
- for (rgb_pwm = 2000; rgb_pwm > 0; rgb_pwm--) {
- bflb_pwm_v2_channel_set_threshold(pwm, rgb_pwmchs[color_index], 0, rgb_pwm);
- bflb_mtimer_delay_ms(1);
- }
- }
- }
- }
复制代码 将main.c的代码更改为上面的代码
然后在vscode中打开终端
执行编译代码
期间编译出现问题可以参考这两个帖子
关于编译报错#lwip/dns.h找不到的解决办法
make (e=2): 系统找不到指定的文件
然后执行固件烧录
- make flash CHIP=bl616 COMX=COMX
复制代码 COMX为开发板的串口号,可以在设备管理器中查看
按住开发板的IO2按钮再按一下EX按钮使得开发板进入烧录模式
烧录成功就可以看到呼吸灯效果了
本来还想着尝试驱动墨水屏的,奈何没有找到相关驱动,身为小白也不会移植和写驱动,所以坐等墨水屏驱动出来
未完待续
---
5.13更新
没想到在arduino环境下可以直接使用微雪的墨水屏驱动
修改IO
- #define EPD_SCK_PIN 25
- #define EPD_MOSI_PIN 31
- #define EPD_CS_PIN 32
- #define EPD_RST_PIN 28
- #define EPD_DC_PIN 26
- #define EPD_BUSY_PIN 33
复制代码 成功点驱动屏幕
|