硬件测试环境:
macOS
stm32f103c8t6最小系统板
st-link v2
新建pio工程
创建工程文件夹并进入:
mkdir test && cd test
查找自己适合的板子
pio boards
会看到以下结果,十里这里选择genericSTM32F103C8,这里执行这个命令,主要是查找对应自己最小系统板的board ID:
...
disco_l152rb STM32L152RBT6 32Mhz 128kB 16kB ST STM32LDISCOVERY
disco_f100rb STM32F100RBT6 24Mhz 128kB 8kB ST STM32VLDISCOVERY
genericSTM32F103C8 STM32F103C8 72Mhz 64kB 20kB STM32F103C8 (20k RAM. 64k Flash)
genericSTM32F103CB STM32F103CB 72Mhz 128kB 20kB STM32F103CB (20k RAM. 128k Flash)
genericSTM32F103R8 STM32F103R8 72Mhz 64kB 20kB STM32F103R8 (20k RAM. 64k Flash)
genericSTM32F103RB STM32F103RB 72Mhz 128kB 20kB STM32F103RB (20k RAM. 128k Flash)
genericSTM32F103RC STM32F103RC 72Mhz 256kB 48kB STM32F103RC (48k RAM. 256k Flash)
genericSTM32F103RE STM32F103RE 72Mhz 512kB 64kB STM32F103RE (64k RAM. 512k Flash)
...
初始化工程,以vim作为IDE:
pio init --ide vim -b genericSTM32F103C8
新建Makefile,添加以下内容(这里注意缩进问题):
all:
platformio -f -c vim run
upload:
platformio -f -c vim run --target upload
clean:
platformio -f -c vim run --target clean
program:
platformio -f -c vim run --target program
uploadfs:
platformio -f -c vim run --target uploadfs
update:
platformio -f -c vim update
配置platformio.ini文件
因为我们这里使用stlink v2,所以需要将程序上传方式定为stlink,默认生成的工程使用arduino框架,这是玩过Arduino的网友的福音,不是吗?只需添加一行指定程序上传方式,最终内容如下:
[env:genericSTM32F103C8]
platform = ststm32
board = genericSTM32F103C8
framework = arduino
upload_protocol = stlink
添加代码
添加点灯代码,十里的最小系统板上LED对应于管脚PB0,所以在src目录下添加main.cpp的内容如下:
#include void setup() { pinMode(PB0, OUTPUT); } void loop() { digitalWrite(PB0, HIGH); delay(500); digitalWrite(PB0, LOW); delay(500); } 编译一下,编译的时候会下载stm32平台开发需要的编译工具和相关框架,你能做的就是waiting…: ➜ test make all platformio -f -c vim run [Wed Nov 8 09:42:57 2017] Processing genericSTM32F103C8 (upload_protocol: stlink; platform: ststm32; board: genericSTM32F103C8; framework: arduino) -------------------------------------------------------------------------------------------------- Verbose mode can be enabled via `-v, --verbose` option Collected 27 compatible libraries Looking for dependencies... No dependencies Linking .pioenvs/genericSTM32F103C8/firmware.elf Calculating size .pioenvs/genericSTM32F103C8/firmware.elf text data bss dec hex filename 6484 1936 312 8732 221c .pioenvs/genericSTM32F103C8/firmware.elf ================================ [SUCCESS] Took 1.55 seconds ===================================== 上传程序 因为前面已经配置了程序上传方式为stlink,所以将stlink连接最小系统板和mac就可以执行上传了,这里也会下载相应的下载工具,waiting … : make upload 可能会遇到下面类似的问题: ➜ test make upload platformio -f -c vim run --target upload [Wed Nov 8 09:50:10 2017] Processing genericSTM32F103C8 (upload_protocol: stlink; platform: ststm32; board: genericSTM32F103C8; framework: arduino) ------------------------------------------------------------------------------------------------------ Verbose mode can be enabled via `-v, --verbose` option Collected 27 compatible libraries Looking for dependencies... No dependencies Linking .pioenvs/genericSTM32F103C8/firmware.elf Checking program size text data bss dec hex filename 6484 1936 312 8732 221c .pioenvs/genericSTM32F103C8/firmware.elf Uploading .pioenvs/genericSTM32F103C8/firmware.bin 2017-11-08T09:50:11 INFO src/common.c: Loading device parameters.... 2017-11-08T09:50:11 WARN src/common.c: unknown chip id! 0xe0042000 st-flash 1.3.1 *** [upload] Error 255 ====================================== [ERROR] Took 1.53 seconds ====================================== make: *** [upload] Error 1 有一个临时的解决方法,将板上的BOOT0与VDD短接,复位一下最小系统板,会进入boot模式,此时执行make upload,程序会同时烧写在flash和内存上,一旦复位内存上的程序会消失,如果BOOT0还是接VDD的话还会进入boot模式,此时程序已经没了,但是flash 中仍然存在,所以只需将BOOT0短接GND再复位一下,板子就从flash启动了,所以最终程序调试方法为: 调试程序:BOOT0短接VDD,每次上传程序先复位板子,然后执行make upload;不进行调试的话,先以调试程序的方式上传程序,然后短接BOOT0和GND,复位一下板子,板子会从flash启动运行固化的程序。 上述问题本来不该出现,后来发现原来是我的usb hub有问题,我直接将stlink v2连接到macbook上是没有上述问题的。
上一篇:windows 下vscode+platformio开发stm32f103c8t6最小系统
下一篇:linux上搭建stm32开发环境 vscode+gcc+stm32cubeMX 和 vscode+platformIO
推荐阅读最新更新时间:2024-11-17 07:57
设计资源 培训 开发板 精华推荐
- STM32F030R8T6最小系统
- MC33072DR2G 基本型反相放大器的典型应用
- LTC4310-1 演示板,热插拔 I2C 隔离器
- 使用 Microchip Technology 的 MIC2774H-XXBM5 的参考设计
- FRDM-KL25Z,Kinetis KL14/15/24/25 MCU 的 Freedom 开发平台
- EVAL-AD7440CB,用于仪表的 AD7440、10 位、580KSPS ADC 的评估板
- 基于uP9614-SW2303的快充电源模块
- 使用 Analog Devices 的 LT6657BHMS8-5 的参考设计
- LT8630IFE 宽输入 5V 和超低噪声 3V 降压转换器的典型应用电路
- ESP32keyboard(ESP8266 receiver):ESP8266制作的ESP32键盘接收器