简介:
本文档总结自B站教程“博流智能BL618开发教程1-一全国大学生嵌入式设计竞赛博流赛道系列培训”
视频链接:https://www.bilibili.com/video/BV1SP411S7Dq
目录
- 竞赛芯片、平台介绍
- 开发资料介绍
- 开发环境搭建
- 开发流程示范
一、竞赛芯片、平台介绍
硬件资源说明:
![](https://verimake.com/assets/files/2023-07-18/1689665959-56491-image-0.png)
硬件原理图:
除了接在FLASH上的GPIO4到GPIO9以外的引脚都通过拓展接口做了引出。
![](https://verimake.com/assets/files/2023-07-18/1689665973-163001-image-1.png)
拓展版:
![](https://verimake.com/assets/files/2023-07-18/1689665984-714098-image-2.png)
二、开发资料介绍
开发包请选择VMG0开发板包
三、开发环境搭建
需要先安装git。
下载工具链:
打开你想要安装工具的目录,右键 - Git Bash Here
![](https://verimake.com/assets/files/2023-07-18/1689666031-411385-image-4.png)
输入git clone https://gitee.com/bouffalolab/toolchain_gcc_t-head_windows.git
下载工具链
(Linux系统输入git clone https://gitee.com/bouffalolab/toolchain_gcc_t-head_linux.git
)
![](https://verimake.com/assets/files/2023-07-18/1689666043-795777-image-5.png)
下载SDK:
按照上方下载工具链的方式,在git命令行窗口中输入git clone https://gitee.com/verimaker/bouffalo_sdk_vmg0.git
下载SDK
配置环境变量:
在Windows下方搜索框搜索“系统环境变量”,点击环境变量。
![](https://verimake.com/assets/files/2023-07-18/1689666059-75963-image-6.png)
双击系统变量下的Path。
![](https://verimake.com/assets/files/2023-07-18/1689666069-690716-image-7.png)
新增三个路径。
![](https://verimake.com/assets/files/2023-07-18/1689666090-945918-image-9.png)
验证安装:
打开Windows命令行窗口,输入以下三条指令,若返回版本号则代表安装成功。
![](https://verimake.com/assets/files/2023-07-18/1689666100-908831-image-10.png)
IDE的下载和使用:
可以使用Eclipse 或 VS Code作为IDE(建议使用VS Code)
下载Eclipse:
![](https://verimake.com/assets/files/2023-07-18/1689666111-362330-image-11.png)
下载VS Code:
![](https://verimake.com/assets/files/2023-07-18/1689666118-438931-image-12.png)
有需要的话可以下载调试器:
![](https://verimake.com/assets/files/2023-07-18/1689666136-142564-image-13.png)
Eclipse导入工程:
打开Eclipse,workshop可以设为SDK根目录的上一级。(不可以设为SDK根目录)
点击左上角File – import – Existing Projects into Workspace – 选择SDK根目录(…\bouffalo_sdk_vmg0)
![](https://verimake.com/assets/files/2023-07-18/1689666150-777806-image-15.png)
Eclipse编译和烧录程序:
![](https://verimake.com/assets/files/2023-07-18/1689666160-87446-image-16.png)
Eclipse调试:
https://verimake.com/d/304-cklinkeclipse-bl618-g0
VS Code导入工程:
直接在SDK根目录下,右键 – 通过Code打开
![](https://verimake.com/assets/files/2023-07-18/1689666170-2546-image-17.png)
新建分支作为自己开发的分支。原分支vmg0用于拉取网站上的更新。(更新指令:git pull)
![](https://verimake.com/assets/files/2023-07-18/1689666193-198597-image-38.png)
VS Code编译和烧录程序:
打开VS Code终端
![](https://verimake.com/assets/files/2023-07-18/1689666201-850698-image-18.png)
输入cd 样例工程路径
![](https://verimake.com/assets/files/2023-07-18/1689666208-10105-image-19.png)
清除编译文件:输入make clean
![](https://verimake.com/assets/files/2023-07-18/1689666214-293479-image-20.png)
编译:输入make CHIP=bl616 BOARD=bl616g0
(如果Makefile文件中CHIP和BOARD的默认值和上面的相同,可以直接输入make)
![](https://verimake.com/assets/files/2023-07-18/1689666222-518833-image-21.png)
烧录:make flash COMX=com端口号
![](https://verimake.com/assets/files/2023-07-18/1689666229-714522-image-22.png)
注意:烧录之前要先进入BOOT模式,按住三个按键在一排的中的RES和BOOT两个按键,先松开RES然后再松开BOOT就可以使得主控进入BOOT模式。然后按上面的指令烧写。
![](https://verimake.com/assets/files/2024-01-23/1706021775-662442-image.png)
按一下板子上的RST,程序开始执行。
具体三种烧录方法:
https://verimake.com/d/310-bl618-g0
测试运行结果:
需要先去Microsoft Store中下载串口调试助手。
![](https://verimake.com/assets/files/2023-07-18/1689666248-107247-image-23.png)
在烧录程序并且按下RST键后,打开串口调试助手。设置好串口号和波特率=2000000后,点击打开串口,右侧即可显示由单片机发送至电脑的信息。
注意:烧录程序时,不要在串口调试助手中打开串口,否则串口被占用,无法烧录。
四、开发流程示范
SDK目录结构:
![](https://verimake.com/assets/files/2023-07-18/1689666261-531085-image-25.png)
代码风格:
所有外设都属于bflb_device_s类型的结构体,操作一种外设之前,先要获取它的结构体句柄。
获取结构体句柄有以下两种方式:
bflb_device_get_by_name通过name获取
bflb_device_get_by_id通过dev_type和idx获取
![](https://verimake.com/assets/files/2023-07-18/1689666268-834718-image-26.png)
具体设备所对应的参数可以参考 bouffalo_sdk_vmg0\drivers\lhal\config\bl616\device_table.c
![](https://verimake.com/assets/files/2023-07-18/1689666274-766688-image-27.png)
定时器+GPIO项目练习:
利用定时器中断修改GPIO引脚的值。
创建工程:
直接拷贝examples/peripherals/timer/timer_int
到examples/
目录下,并重命名为timer_int_gpio。
![](https://verimake.com/assets/files/2023-07-18/1689666282-202673-image-28.png)
修改编译参数:
找到项目目录下的CMakeLists.txt,将project(timer_int)改为project(timer_int_gpio)
![](https://verimake.com/assets/files/2023-07-18/1689666288-135500-image-29.png)
找到项目目录下的Makefile,将BL_SDK_BASE的值改为$(SDK_DEMO_PATH)/../../以指向SDK根目录相对于当前目录的路径。将BOARD的值改为bl616g0,从而使得编译时只需要输入make。
![](https://verimake.com/assets/files/2023-07-18/1689666293-597568-image-30.png)
找到项目目录下的flash_prog_cfg.ini,将filedir的值改为./build/build_out/timer_int_gpio_$(CHIPNAME).bin
![](https://verimake.com/assets/files/2023-07-18/1689666303-414170-image-39.png)
编写代码:
本项目仅使用timer0,因此将timer1相关的代码删除。
![](https://verimake.com/assets/files/2023-07-18/1689666309-516934-image-31.png)
导入bflb_gpio.h头文件。
![](https://verimake.com/assets/files/2023-07-18/1689666314-709459-image-32.png)
为gpio定义一个结构体指针。
![](https://verimake.com/assets/files/2023-07-18/1689666319-562711-image-33.png)
初始化gpio引脚30、31、32。
![](https://verimake.com/assets/files/2023-07-18/1689666324-827691-image-34.png)
定义三个变量分别对应三个引脚的值,在定时器中断函数中分别修改三个变量的值。
![](https://verimake.com/assets/files/2023-07-18/1689666332-878841-image-35.png)
根据三个变量的值,为gpio三个引脚赋值。
![](https://verimake.com/assets/files/2023-07-18/1689666339-154685-image-36.png)
程序编译并烧录后,单片机连接外置的逻辑分析仪,并打开相应软件,可以看到输出结果。
![](https://verimake.com/assets/files/2023-07-18/1689666345-775357-image-37.png)