PixelBUAA 开发板简易入门指南

PixelBUAA LED 矩阵开发板是一个由 STM32F042K6U6 单片机控制、IS31FL3731-QF 进行 LED 驱动的简易单片机实验环境,具有良好的展示效果。本指南指导同学们在 Windows 10 下配置本开发板的开发环境。

本文中所有需要的资料均可以在 https://bhpan.buaa.edu.cn/link/4E640397B3F1D183F2F794E2B2BA7EA6
中下载。

安装环境

安装 GCC ARM

STM32 单片机需要使用 ARM 编译器进行编译。

在资料包中找到 gcc-arm-none-eabi-9-2020-q2-update-win32.exe 安装程序,下载打开后一路点击 Next 即可完成安装。请在安装完成的页面勾选 Add path to environment variable 选项并去除前两个选项,如下图所示。

如果忘记勾选 Add path to environment variable,则可能会在编译时提示找不到 arm-none-eabi-gcc 编译器,此时请将 GCC ARM 的 bin 目录添加进 PATH 中(参照下文提示)。

解压 MinGW 工具包

MinGW 提供了在 Windows 下的常用编译工具,例如 make、gcc 等。

在资料包中找到 mingw-x86_64-8.1.0-release-posix-seh-rt_v6-rev0.7z,将其解压到任意位置(不要解压到 C 盘根目录,否则可能无法使用),然后将其中的 bin 目录添加到 PATH 环境变量,如下图所示。具体添加的方法请同学们自己搜索“Windows 如何添加 PATH 环境变量”。

安装 CLion

CLion 是我们使用的开发环境。它可以开发电脑上的 C / C++ 程序,也可以开发 STM32 嵌入式程序。

在资料包中找到 CLion-2020.2.4.exe,下载打开,然后一路 Next 安装。
安装后,会进行一些初始化配置的提示:首先是提示是否 Import Settings,选 Do Not Import;然后选择界面主题,按自己喜好选择即可;然后会有两个提示安装 Plugin 的界面,点击 Next 跳过不安装。

之后会出现提示激活许可的信息,如下图所示。JetBrains 对教育用户免费,只需注册一个 JetBrains 账号,然后用 buaa.edu.cn 邮箱进行教育验证即可,具体请访问 https://www.jetbrains.com/shop/eform/students,然后输入账号并点击绿色 Activate 按钮;如果此时不想激活,也可以选择如图红色圆圈所示的试用选项,试用 30 天再激活。

激活步骤完成后,我们需要配置 MinGW 以及 GCC ARM 工具链。CLion 应该已经能够找到我们之前配置的 MinGW 路径(因为我们之前已经将它添加到 PATH 中了),并自动创建了一个名为 MinGW 的 Toolchain,如下图所示。

这个找到的 MinGW 工具链中,含有用于编译 Windows 程序的编译器(如图中的 C Compiler 和 C++ Compiler),我们以后可以用它来进行电脑上的 C / C++ 语言编程,但这次我们不使用它。将其名称改为 MinGW-Windows 以示区分。

点击左上方的加号按钮,并选择 MinGW,添加一个新的工具链。将新的工具链名称改为 MinGW-STM32,然后修改 C Compiler、C++ Compiler 和 Debugger,其余选项不变。其中,C Compiler 对应的文件名为 arm-none-eabi-gcc.exe,C++ Compiler 对应的文件名为 arm-none-eabi-g++.exe,Debugger 对应的文件名为 arm-none-eabi-gdb.exe,其均存放在第一步 GCC ARM 安装路径的 bin 目录下(如果第一步安装 GCC ARM 时没有修改默认路径,则默认位于 C:\Program Files (x86)\GNU Arm Embedded Toolchain\9 2020-q2-update\bin 中)。配置完成后,各项设置应该类似下图。

为了方便使用,我们将 STM32 工具链设为默认。请在左侧选中 Mingw-STM32 工具链,然后点击向上的三角形,将 MinGW-STM32 调整到第一个,如下图所示。

在上述工具链对话框关闭后,如果以后想再次打开(比如想切换工具链),则打开 CLion 的设置(File -> Settings),然后在 Build, Execution, Deployment 下找到 Toolchains 即可,如下图所示。

安装 USB 驱动程序

本开发板的单片机自带 USB 固件更新程序,可以通过 USB 刷入固件。我们需要为其安装驱动。

找一条 USB Type-C 数据线,并将数据线插入开发板侧面(先不要连接电脑)。按下开发板下方的按钮不松开,然后将数据线的另一头插入电脑。插入后,等待 2 秒钟再松开按钮。此时电脑应该会有新设备连接的提示,并发出提示音。

为什么上电时要按住按钮不松开?
上电时,如果没有按住按钮,则单片机进入用户程序,此时单片机不启动 USB 功能,不能通过 USB 下载固件;上电时,如果按住按钮,则单片机进入 BOOTLOADER(烧写模式),此时才能与电脑通信。

下载资料包中的 zadig-2.5.exe 并打开。初次打开时会提示是否自动检查更新,选择 Yes 即可。

先点击 Zadig 菜单栏 Options 中的 List All Devices 选项,然后在主界面下拉框中选择名为 STM32 BOOTLOADER 的设备,在右侧驱动选择(图中红框)中点按上下三角形按钮,选择 WinUSB 驱动,然后点击安装按钮(图中绿框),等待其安装完成。

安装完成后,确认左侧 Driver 栏中为 WinUSB 驱动,然后可以关闭 Zadig。

解压固件更新工具

我们使用 dfu-util 工具来为单片机更新固件。

下载并解压资料包中的 dfu-util-0.9-win64.zip 文件,将其放到你喜欢的地方。然后你需要将 dfu-util-0.9-win64 目录添加进 PATH 环境变量,具体方法不再赘述。

添加完成后,按键盘上的 Win+X 键,并在屏幕左下角的菜单中选择“Windows PowerShell”,打开 PowerShell。

按上节所述步骤,按住按钮,然后将开发板连接到电脑。在 PowerShell 中输入 dfu-util 列举设备的命令:

dfu-util -l

此时 dfu-util 应该可以找到单片机,如图中 Found DFU: [0483:df11] 开头的两行。每个单片机中有两个 DFU 节点,所以显示找到两个 DFU 信息是正常的。

如果成功找到单片机,即说明驱动安装及 dfu-util 配置都是正确的,此时可以关闭 PowerShell。

编译项目

环境配置完成后,我们就可以开始编译项目了。

下载资料包中的 Project.zip 并解压。然后打开 CLion,在主界面中点击 Open or Import,然后选择解压出的目录,如图所示。

打开项目后,等待数秒让 CLion 完成索引工作,然后直接点击右上角的编译按钮(下图红圈)。点击后,应该能在左下角日志窗口看到编译生成固件的路径(下图绿圈)。

如果看到 Build finished 提示,就代表编译成功了。

写入固件

要将固件写入到单片机中,你需要按住按钮,然后连接单片机。打开刚刚生成的固件文件所在目录(如图中为 D:\PixelBUAA\cmake-build-debug),点击左上角文件菜单中的“打开 PowerShell”选项,并输入写入固件的命令:

dfu-util -a 0 -D PixelBUAA.bin --dfuse-address 0x8000000


然后 dfu-util 就会自动向单片机发送固件。写入完成后的提示信息如下图所示。

此时重新插入 USB 线(插入时不按住按键),单片机即可启动写入的程序。此时,所有灯会呈呼吸灯式闪烁(亮度连续变化),这是资料包中附带的默认程序行为。

如果需要再次写入程序,则拔掉 USB 线,按住按键,再插入 USB 线即可。

程序结构简介

工程主要代码位于 Src/main.c 文件的 main 函数中。IS31FL3731_set_pwm_all 向芯片发送调整亮度的指令,然后IS31FL3731_update_pwm_buffers函数应用设置。

进阶提示

为了简单起见,本指南只叙述了使用 USB DFU 进行固件更新的流程。如果想要更快捷的固件写入,或希望使用调试功能,则需要使用调试器(例如 ST-Link 或 J-Link)来将单片机连接到电脑。你还需要为 CLion 配置 OpenOCD,方可使用调试功能。

如果希望在 CLion 中新建 STM32 项目,则需要安装 STM32CubeMX,然后在新建项目时选择 STM32CubeMX 项目。

下面给出了一些链接,供同学参考:

https://cloud.tencent.com/developer/article/1693166

https://zhuanlan.zhihu.com/p/145801160

https://www.jetbrains.com/help/clion/embedded-development.html

https://electricui.com/blog/clion-stm32-setup

CC BY-SA 4.0 本作品使用基于以下许可授权:Creative Commons Attribution-ShareAlike 4.0 International License.

WordPress Appliance - Powered by TurnKey Linux