N年刚接触STM32开发板就遇很大的问题,接电脑无法识别设备,当时玩CC3D无人飞控,也是用的USB烧录很方便,但是买的开发板就是不正常,折腾了很久,没搞定就放弃。
直到最近无聊又找出这个开发板折腾,还是同样的问题。查了很多资料都没有一个详细教程和说明,我这篇文章也是自己折腾很久以后总结出来分享给喜欢折腾的朋友。
新买的STM32开发板一定要刷BOOTLOADER程序,这个程序是引导程序,具体怎么刷网上有介绍,我现在只是把程序分享给大家,这个程序有很多版本,不同版本对应不同IDE和开发板,我在这儿是使用的是generic_boot20_pc13.bin程序。
打包下载地址:链接: https://pan.baidu.com/s/1f5TzIU_aRg120jJSVcK2Hg?pwd=jan2 提取码: jan2
文章置顶也可以下载。
使用stlink和SWD烧录都可以。我是直接使用的SWD烧录
烧录之前的开发板接电脑截图:
我是直接使用的SWD烧录:
BOOTLOADER烧录成功以后再ARDUINO IDE 安装目录STM32开发板文件夹里面找到“STM32 Arduino IDE”文件,或者是你下载的STM32开发板ZIP文件解压出来的目录里面安装驱动。
开发板接电脑现在电脑可以识别了:
返回到ARDUINO IDE窗口。串口里面也可以识别了:
OK了,现在上传试一下。
我晕,编译完成烧录失败。
maple_loader v0.1
Resetting to bootloader via DTR pulse
#
# A fatal error has been detected by the Java Runtime Environment:
#
# EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x000000007110b5db, pid=10820, tid=5520
#
# JRE version: OpenJDK Runtime Environment Microsoft-25199 (11.0.12+7) (build 11.0.12+7)
# Java VM: OpenJDK 64-Bit Server VM Microsoft-25199 (11.0.12+7, mixed mode, tiered, compressed oops, g1 gc, windows-amd64)
# Problematic frame:
# C [jSSC-2.8_x86_64.dll+0xb5db]
#
# No core dump will be written. Minidumps are not enabled by default on client versions of Windows
#
# An error report file with more information is saved as:
# C:\Users\Administrator\AppData\Local\Arduino15\packages\stm32duino\tools\stm32tools\2022.9.26\win\hs_err_pid10820.log
#
# If you would like to submit a bug report, please visit:
# https://github.com/microsoft/openjdk/issues
# The crash happened outside the Java Virtual Machine in native code.
# See problematic frame for where to report the bug.
大概了解到应该是这maple_loader.bat文件处理JAVA程序出错。这个问题不是由 Sloeber 本身引起的,而是因为使用了 Maple引导加载程序不支持的Java 版本,由于最新版本的 Sloeber(nighty和beta 4.41需要使用Java 11),用户在使用 maple 引导如载程序时会遇到此错误
检查了我使用的JAVA版本是8.0路径在“C:\Program Files\Android\jdk\jdk-8.0.302.8-hotspot\jdk8u302-b08”,把这个路径添加到了maple_loader.bat
保存BAT文件,再次运行IDE,结果还是同样的错误,头痛了!
突然想起换个IDE版本试一下,我电脑有现成的1.8.19,把"STM32 Arduino IDE"开发板文件夹直接复制到1.8.19硬件文件夹内,打开同样的代码编译一次烧录成功。