项目简介
本项目以STM32F0系列微控制器为核心,实现了基于DMA加速的多UART USB CDC通信,同时能借助SPI接口与W25QXX系列SPI Flash芯片进行通信。项目涵盖USB设备驱动、SPI Flash通信、ADC读取以及命令行工具开发等多方面功能。
项目的主要特性和功能
- USB通信:利用STM32F072微控制器的USB接口,实现DMA加速的多UART USB CDC通信,支持异步通信,具备数据输入输出、状态更改等功能。
- SPI Flash通信:通过SPI接口与W25QXX系列SPI Flash芯片通信,可进行数据的读取、写入、擦除以及页、扇区、块状态检查等操作。
- ADC读取:支持通过ADC读取模拟信号,如电压、电流等,用于监测和控制系统状态。
- 命令行工具开发:提供命令行工具,可将文件内容写入STM ACM设备,支持通过命令行参数指定输入文件和STM ACM设备。
- 多命令控制:可通过终端模拟器发送命令,实现MCU复位、电源按钮控制、SPI操作、电压电流测量等功能。
安装使用步骤
编译项目
假设用户已下载项目源码文件,打开终端,执行以下命令:
cd./src
make clean && make
编译后的二进制文件将存放在./src/build
目录下(包含stm32cdc.bin
、.elf
、.hex
)。
硬件准备
确保STM32F072微控制器和W25QXX系列SPI Flash芯片正确连接,并将设备连接到PC的USB端口。若使用HoneyComb / ClearFog CX板,需放置跳线J5017(靠近微型USB连接器),使STM32进入DFU模式。
环境配置
安装ARM GCC(arm-none-eabi-gcc-
),推荐使用最新工具链以优化空间;也可使用STM32CubeIDE,但未经过测试。同时安装dfu-util
用于固件更新。
程序下载
使用USB线将PC连接到板上标记为“Management”的微型USB连接器,执行以下命令将固件刷入STM32:
dfu-util -l -d 0483:df11 -a 0 -s 0x08000000:leave -D./build/stm32cdcuart.bin
运行测试
打开终端模拟器(如minicom、putty),连接到/dev/ttyACM1
,即可发送命令进行测试,如:
- 读取SPI ID:si
- 控制电源开关:pl
(按下电源按钮),ph
(释放电源按钮)
注意事项
- 若
dfu-util
在指示MCU跳转到下载代码时出现问题,可尝试应用文档中的补丁。 - SPI页写入后SPI读取可能返回
0x0
,需在完成所有SPI页写入后复位MCU。 - 同时大量使用
/dev/ttyACM0
和/dev/ttyACM1
时可能出现挂起现象。 - 由于STM32闪存为16KB,并非所有命令都已实现。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】