深度解析:STM32 MDK 工程 HEX 文件转 BIN 文件 —— 原理、方法、优缺点与实战指南(下)

5.2.4 AXF 文件缺失问题(原因 / 解决步骤)

AXF 文件是 MDK 编译的核心输出文件之一,若转换时提示 "Cannot open input file 'xxx.axf'",多因 AXF 文件未生成导致,具体原因及解决步骤如下:

原因 表现 解决步骤
工程配置未勾选 "生成 AXF 文件" Build Output 中无 "Creating xxx.axf" 日志,Objects/Output 目录无 AXF 文件 1. 打开 "Options for Target→Output" 标签页;2. 勾选 "Create Executable"(MDK v5)或 "Generate executable"(MDK v6);3. 确认 "Executable Name" 已填写(默认与工程名一致);4. 点击 "OK" 后重新编译工程
编译过程失败(无有效 AXF 文件) Build Output 中存在编译错误(如 "error: undefined reference to 'main'"),仅生成部分 OBJ 文件 1. 查看 Build Output 中的错误信息,定位编译失败原因(如代码语法错误、缺少库文件);2. 修复错误后,点击 "Rebuild" 重新编译;3. 编译成功后,确认 Objects/Output 目录生成 AXF 文件
输出目录配置错误 AXF 文件生成在非预期目录(如默认 Objects 目录被改为自定义目录) 1. 打开 "Options for Target→Output" 标签页,查看 "Output Directory" 配置;2. 确认转换命令中的输入文件路径与 "Output Directory" 一致;3. 若路径不一致,修改转换命令中的输入文件路径
5.2.5 编译后自动转换失败排查流程

当 MDK 编译成功但未生成 BIN 文件时,可按以下流程逐步排查:

  1. 查看 Build Output 日志

    • 若日志无转换相关信息:检查 "Options for Target→User" 标签页,是否勾选 "Run #1" 且命令非空;
    • 若日志提示 "'fromelf' 不是内部或外部命令":参考 5.2.1 配置环境变量或使用绝对路径;
    • 若日志提示 "Cannot open input file":确认输入文件(AXF/HEX)路径正确且文件存在。
  2. 验证工具可执行性 :打开 CMD,输入转换命令(如fromelf --bin -o test.bin test.axf),若执行失败,说明工具本身存在问题(如路径错误、版本不兼容)。

  3. 检查权限与路径

    • 确认输出目录有写入权限(如非系统盘目录);
    • 路径中无空格、中文等特殊字符,若有则加英文双引号。
  4. 重新配置并测试:简化转换命令(如使用默认 Objects 目录的 AXF 文件),重新编译后查看是否生成 BIN 文件。

5.3 命令行工具注意事项

5.3.1 环境变量未配置的解决方案

若命令行提示 "'fromelf' 不是内部或外部命令",且未配置环境变量,可通过以下方式解决:

  • 临时方案 :在命令中使用 fromelf.exe 的绝对路径,例如:

    bash

    运行

    复制代码
    "C:\Keil_v5\ARM\ARMCC\bin\fromelf.exe" --bin -o test.bin test.axf
  • 永久方案:按 3.1.2 步骤配置环境变量,确保工具可全局调用。

5.3.2 相对路径与绝对路径混用问题

当命令中同时使用相对路径和绝对路径时,可能因当前目录不一致导致文件找不到,例如:

bash

运行

复制代码
# 错误示例:输入文件用绝对路径,输出文件用相对路径,当前目录非输入文件所在目录
fromelf --bin -o ./test.bin "C:\Project\test.axf"

解决方法 :统一使用绝对路径,或确保命令行终端当前目录与相对路径基准目录一致(通过cd命令切换)。

5.3.3 多文件转换时的文件名冲突处理

批量转换多个文件时,若输出文件名重复(如多个工程均命名为test.bin),会导致文件被覆盖,解决方法:

  • 输出文件名包含工程名 / 芯片型号,例如: bash

    运行

    复制代码
    fromelf --bin -o ./Output/F103_test.bin ./Input/F103_test.axf
    fromelf --bin -o ./Output/L476_test.bin ./Input/L476_test.axf
  • 批量脚本中使用原文件名作为输出文件名(如 CMD 脚本中的%%~nf)。

5.3.4 命令行窗口编码导致的乱码问题

Windows CMD 默认编码为 GBK,若 HEX 文件编码为 UTF-8,可能出现乱码导致转换失败,解决方法:

  1. 打开 CMD,输入chcp 65001切换编码为 UTF-8;
  2. 用 Notepad++ 将 HEX 文件编码转换为 ANSI(兼容 GBK)。

5.4 第三方工具注意事项

5.4.1 工具版本选型(稳定版 / 最新版对比)
版本类型 优势 劣势 适配场景
稳定版(如 STM32CubeProgrammer V2.14) 经过大量测试,bug 少,兼容性强 缺少最新功能(如对 STM32U5 的新支持) 量产场景、对稳定性要求高的项目
最新版(如 STM32CubeProgrammer V2.18) 支持最新芯片 / 功能,修复旧版 bug 可能存在未发现的新 bug 开发最新 STM32 芯片(如 U5/G4)的项目
5.4.2 大文件转换(>100MB)的性能问题

转换大文件时,部分工具可能出现卡顿或崩溃,优化措施:

  • 选择内存占用低的工具(如 fromelf.exe、STM32CubeProgrammer);
  • 关闭其他占用内存的程序,释放系统资源;
  • 分块转换(若工具支持),再合并结果。
5.4.3 多格式支持的兼容性验证

使用第三方工具转换非标准 HEX 文件(如 Motorola S-record 格式)前,需验证工具兼容性:

  1. 用工具打开测试文件,查看是否能正常解析;
  2. 转换后用 WinHex 对比原文件数据,确保无丢失。
5.4.4 工具自带校验功能的启用与验证

部分工具(如 STM32CubeProgrammer)支持转换后自动校验,启用步骤:

  1. 转换时勾选 "Verify after conversion"(若有);
  2. 转换完成后,工具会提示 "Verification successful",确保数据无误。
5.4.5 绿色版 vs 安装版的选择与风险
版本类型 优势 风险 适配场景
绿色版(免安装) 无需安装,便携性强 可能缺少依赖库,功能不全,存在安全风险(如捆绑恶意软件) 临时转换、仅需基础功能的场景
安装版 功能完整,依赖库齐全,安全可靠 占用磁盘空间,安装耗时 长期使用、对功能 / 安全性要求高的场景

六、实战案例:STM32 开发中的 HEX 转 BIN 全流程

6.1 案例 1:单个 STM32F103 工程的快速转换(MDK 内置方法)

6.1.1 工程背景与需求
  • 工程:STM32F103C8T6 串口通信工程;
  • 需求:开发阶段快速生成 BIN 文件,用于 ST-Link 烧录测试;
  • 烧录工具:ST-Link Utility。
6.1.2 详细操作步骤
步骤 操作 注意点
1 打开 MDK 工程,点击 "魔法棒→Output",设置输出目录为./Output,勾选 "Create HEX File" 和 "Create Executable" 确保输出目录存在,避免路径错误
2 切换到 "User" 标签页,在 "After Build/Rebuild" 区域勾选 "Run #1",输入命令:fromelf --bin -o ./Output/F103_UART.bin ./Output/F103_UART.axf 命令中路径与 Output 目录一致
3 点击 "Rebuild" 重新编译工程 编译日志无错误,显示 "0 Error (s), 0 Warning (s)"
4 查看./Output目录,确认生成F103_UART.bin 文件大小约 8KB(与程序实际大小一致)
6.1.3 转换结果验证
  1. 文件大小验证:程序编译后 HEX 文件约 16KB,BIN 文件约 8KB,符合体积比例;
  2. 数据完整性验证:用 WinHex 打开 BIN 文件,查看复位向量表(首 4 字节为栈顶地址,次 4 字节为复位函数地址),与 HEX 文件一致;
  3. 烧录测试
    • 打开 ST-Link Utility,连接开发板;
    • 点击 "Open File" 选择 BIN 文件,设置起始地址为0x08000000
    • 点击 "Program & Verify",烧录完成后开发板正常运行串口通信功能。
6.1.4 常见问题与解决方案
  • 问题:烧录后程序无响应;
  • 原因:BIN 文件起始地址设置错误(如设为0x08008000);
  • 解决方案:重新烧录,将起始地址改为0x08000000

6.2 案例 2:多工程批量转换(命令行批处理脚本)

6.2.1 项目背景
  • 项目:10 个 STM32L476 电机驱动工程(量产阶段);
  • 需求:批量转换所有工程的 AXF 文件为 BIN,提升量产效率;
  • 工具:CMD 批处理脚本。
6.2.2 批处理脚本编写

bat

复制代码
@echo off
:: 批量转换脚本:STM32L476电机驱动工程
:: 工程根目录:C:\Projects\Motor_Driver
:: 输出目录:C:\Projects\Motor_Driver\Batch_Output

:: 创建输出目录
md "C:\Projects\Motor_Driver\Batch_Output" 2>nul

:: 定义工程列表(工程名)
set PROJECTS=Driver_1 Driver_2 Driver_3 Driver_4 Driver_5 Driver_6 Driver_7 Driver_8 Driver_9 Driver_10

:: 遍历工程批量转换
for %%p in (%PROJECTS%) do (
    set AXF_PATH="C:\Projects\Motor_Driver\%%p\Output\%%p.axf"
    set BIN_PATH="C:\Projects\Motor_Driver\Batch_Output\%%p.bin"
    
    echo 正在转换:%%p
    "C:\Keil_v5\ARM\ARMCC\bin\fromelf.exe" --bin -o !BIN_PATH! !AXF_PATH!
    
    :: 验证转换结果
    if exist !BIN_PATH! (
        echo 转换成功:!BIN_PATH! >> Batch_Log.txt
    ) else (
        echo 转换失败:!AXF_PATH! >> Batch_Log.txt
    )
)

echo 批量转换完成!日志文件:Batch_Log.txt
pause
6.2.3 脚本执行与结果验证
  1. 将脚本保存为Batch_Convert.bat,双击运行;
  2. 执行完成后,Batch_Output目录生成 10 个 BIN 文件;
  3. 查看Batch_Log.txt,确认所有工程转换成功。
6.2.4 脚本优化
  • 错误捕获 :添加if %errorlevel% neq 0捕获转换错误,自动重试 1 次;
  • 日志输出 :记录转换时间(用%date% %time%);
  • 自动重跑:若转换失败,脚本自动重新执行该工程的转换命令。

6.3 案例 3:无 MDK 环境的转换(第三方工具 STM32CubeProgrammer)

6.3.1 场景背景
  • 场景:测试团队无 MDK 开发环境,需将开发团队提供的 HEX 文件转换为 BIN;
  • 工具:STM32CubeProgrammer V2.16。
6.3.2 工具安装与配置
  1. 从 ST 官网下载 STM32CubeProgrammer,安装时勾选 "USB Driver";
  2. 打开工具,选择 "English"(避免中文乱码)。
6.3.3 转换步骤与参数设置
  1. 切换到 "Convert" 标签页;
  2. "Input file" 选择开发团队提供的STM32_H7_APP.hex
  3. "Output file" 设置为C:\Test\STM32_H7_APP.bin
  4. "Output format" 选择 "Binary (.bin)";
  5. "Start address" 设置为0x08000000(STM32 FLASH 起始地址);
  6. 点击 "Convert",提示 "Conversion successful"。
6.3.4 转换后烧录验证
  1. 连接 STM32H7 开发板与电脑(USB 转串口);
  2. 切换到 STM32CubeProgrammer 的 "Connect" 标签页,选择 "UART",设置波特率为 115200;
  3. 点击 "Connect",连接成功后点击 "Program";
  4. 选择生成的 BIN 文件,设置起始地址为0x08000000,点击 "Start Programming";
  5. 烧录完成后,开发板正常运行 APP 功能。

6.4 案例 4:大文件转换(200MB HEX 文件转 BIN)

6.4.1 场景背景
  • 工程:STM32H743 存储密集型工程(包含大量固件数据);
  • 需求:转换 200MB HEX 文件为 BIN,用于量产烧录;
  • 约束:转换时间≤5 分钟,内存占用≤2GB。
6.4.2 工具选型与性能对比
工具 转换时间 内存占用 稳定性
fromelf.exe(MDK v6) 2 分 10 秒 800MB 稳定,无崩溃
STM32CubeProgrammer V2.18 3 分 30 秒 1.2GB 稳定,支持断点续转
WinHex V20.8 4 分 50 秒 1.8GB 大文件打开卡顿,转换较慢
6.4.3 转换过程中的优化措施
  1. 选择 fromelf.exe 作为转换工具,使用绝对路径命令: bash

    运行

    复制代码
    "C:\Keil_v5\ARM\ARMCLANG\bin\fromelf.exe" --bin -o C:\Output\H7_Large.bin C:\Input\H7_Large.hex
  2. 关闭其他程序,释放系统内存;

  3. 转换前清理输出目录,确保磁盘空间≥500MB。

6.4.4 转换后数据完整性校验
  1. 计算 BIN 文件的 CRC32 值(用 WinHex 的 "Tools→Checksum→CRC32");
  2. 与原 HEX 文件的 CRC32 值对比,两者一致则验证通过;
  3. 随机抽取 10 处地址,对比 BIN 文件与 HEX 文件的数据,确保无篡改。

七、进阶技巧:HEX 转 BIN 的优化与扩展应用

7.1 自定义 BIN 文件起始地址(适配 STM32 FLASH 分区)

7.1.1 地址配置原理

STM32 FLASH 通常分为 "Bootloader 区" 和 "APP 区",例如:

  • Bootloader 区:0x08000000-0x08007FFF(32KB);
  • APP 区:0x08008000-0x080FFFFF(960KB)。转换 APP 的 HEX 文件时,需将 BIN 文件的起始地址设为0x08008000,避免覆盖 Bootloader。
7.1.2 fromelf 参数配置(--base)

使用--base参数指定 BIN 文件的起始地址,例如:

bash

运行

复制代码
fromelf --bin --base 0x08008000 -o ./APP.bin ./APP.axf

说明--base会强制 BIN 文件的起始地址为指定值,数据按该地址排列。

7.1.3 实战示例
  1. 工程:STM32F407 APP 工程;

  2. 转换命令: bash

    运行

    复制代码
    fromelf --bin --base 0x08008000 -o ./F407_APP.bin ./F407_APP.axf
  3. 烧录:将 BIN 文件烧录到0x08008000地址,Bootloader 可正常跳转至 APP。

7.2 BIN 文件冗余数据裁剪(节省 FLASH 空间)

7.2.1 冗余数据产生原因

HEX 文件地址碎片化(如跳过部分地址)会导致 BIN 文件填充大量0x00,例如:

  • HEX 文件包含0x08000000-0x080000FF0x08000200-0x080002FF的数据;
  • 转换后 BIN 文件会填充0x08000100-0x080001FF0x00,增加冗余。
7.2.2 裁剪工具与方法(Python 脚本)

编写 Python 脚本裁剪冗余0x00

python

运行

复制代码
def trim_bin(input_path, output_path):
    with open(input_path, 'rb') as f:
        data = f.read()
    
    # 去掉末尾连续的0x00
    trimmed_data = data.rstrip(b'\x00')
    
    # 去掉中间连续的0x00(可选,需确认地址不影响程序)
    # trimmed_data = trimmed_data.replace(b'\x00'*1024, b'')  # 去掉连续1024个0x00
    
    with open(output_path, 'wb') as f:
        f.write(trimmed_data)

# 调用函数
trim_bin('./Input/L476.bin', './Output/L476_trimmed.bin')
7.2.3 裁剪后的验证
  1. 对比裁剪前后的文件大小:原文件 128KB,裁剪后 96KB,节省 25% 空间;
  2. 烧录裁剪后的 BIN 文件,测试程序功能正常(无地址访问错误)。

7.3 转换过程中的数据校验(确保转换无误)

7.3.1 CRC32 校验原理与实现

CRC32 是一种常用的校验算法,可快速验证文件完整性。使用 Python 实现 CRC32 计算:

python

运行

复制代码
import zlib

def calculate_crc32(file_path):
    with open(file_path, 'rb') as f:
        data = f.read()
    return zlib.crc32(data)

# 计算HEX和BIN文件的CRC32
hex_crc = calculate_crc32('./Input/F103.hex')
bin_crc = calculate_crc32('./Output/F103.bin')

if hex_crc == bin_crc:
    print("数据校验通过!")
else:
    print("数据校验失败,转换有误!")
7.3.2 量产场景下的校验自动化

在批量转换脚本中添加 CRC32 校验:

bat

复制代码
:: 转换后计算CRC32
for %%p in (%PROJECTS%) do (
    :: 转换命令(略)
    :: 计算CRC32(需提前安装crc32工具)
    crc32 "C:\Projects\Motor_Driver\Batch_Output\%%p.bin" >> "C:\Projects\Motor_Driver\Batch_Output\%%p.crc"
)

7.4 多 HEX 文件合并为单个 BIN 文件(复杂工程适配)

7.4.1 合并原理

将 Bootloader 和 APP 的 HEX 文件合并为单个 BIN 文件,需确保地址不重叠:

  • Bootloader HEX:0x08000000-0x08007FFF
  • APP HEX:0x08008000-0x080FFFFF
  • 合并后 BIN 文件包含两个区域的数据,地址连续。
7.4.2 实战示例(fromelf + 批处理)
  1. 转换 Bootloader HEX 为 BIN: bash

    运行

    复制代码
    fromelf --bin --base 0x08000000 -o ./Bootloader.bin ./Bootloader.hex
  2. 转换 APP HEX 为 BIN: bash

    运行

    复制代码
    fromelf --bin --base 0x08008000 -o ./APP.bin ./APP.hex
  3. 合并两个 BIN 文件(Python 脚本): python

    运行

    复制代码
    def merge_bin(file1, file2, output):
        with open(file1, 'rb') as f1, open(file2, 'rb') as f2:
            data1 = f1.read()
            data2 = f2.read()
        # 填充Bootloader和APP之间的地址(若有)
        padding = b'\x00' * (0x08008000 - 0x08000000 - len(data1))
        merged_data = data1 + padding + data2
        with open(output, 'wb') as f:
            f.write(merged_data)

merge_bin('./Bootloader.bin', './APP.bin', './Full_Firmware.bin')

plaintext

复制代码
### 7.5 跨平台转换方案(Windows/Linux/macOS)
#### 7.5.1 Linux下的转换工具(objcopy)
1. 安装GCC工具链:
   ```bash
   sudo apt-get install gcc-arm-none-eabi
  1. 转换 HEX 为 BIN: bash

    运行

    复制代码
    arm-none-eabi-objcopy -I ihex ./Input/F103.hex -O binary ./Output/F103.bin
7.5.2 macOS 下的转换工具(Homebrew)
  1. 安装 Homebrew: bash

    运行

    复制代码
    /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
  2. 安装 fromelf: bash

    运行

    复制代码
    brew install arm-none-eabi-gcc
  3. 转换命令: bash

    运行

    复制代码
    arm-none-eabi-objcopy -I ihex ./Input/F103.hex -O binary ./Output/F103.bin
7.5.3 跨平台脚本编写(Shell 脚本)

bash

运行

复制代码
#!/bin/bash
# 跨平台转换脚本
INPUT_HEX="./Input/STM32.hex"
OUTPUT_BIN="./Output/STM32.bin"

if [[ "$(uname)" == "Windows_NT" ]]; then
    # Windows:使用fromelf
    fromelf --bin -o $OUTPUT_BIN $INPUT_HEX
elif [[ "$(uname)" == "Linux" || "$(uname)" == "Darwin" ]]; then
    # Linux/macOS:使用objcopy
    arm-none-eabi-objcopy -I ihex $INPUT_HEX -O binary $OUTPUT_BIN
fi

echo "转换完成:$OUTPUT_BIN"

八、常见问题与故障排除大全

8.1 转换失败类问题

问题现象 可能原因 排查步骤 解决方案
提示 "文件不存在" 1. 输入 / 输出路径错误;2. 文件被删除 / 移动 1. 核对路径是否正确;2. 确认文件存在于指定目录 1. 修正路径;2. 恢复文件到指定目录
提示 "权限不足" 1. 无读取输入文件权限;2. 无写入输出目录权限 1. 检查文件 / 目录权限;2. 以管理员身份运行工具 1. 添加读取 / 写入权限;2. 用管理员身份执行命令
转换后文件大小为 0 1. 输入文件无有效数据;2. 地址映射错误 1. 查看 HEX 文件是否包含数据记录;2. 检查扩展地址记录是否正确 1. 重新编译生成有效 HEX 文件;2. 修正扩展地址记录
工具崩溃退出 1. 工具版本不兼容;2. 大文件转换内存不足 1. 更换稳定版工具;2. 释放系统内存 1. 降级 / 升级工具版本;2. 关闭其他程序后重试

8.2 转换后文件异常类问题

问题现象 可能原因 排查步骤 解决方案
BIN 文件大小异常 1. 地址碎片化导致填充过多 0x00;2. 起始地址设置错误 1. 查看 HEX 文件地址是否连续;2. 核对起始地址参数 1. 裁剪冗余数据;2. 修正起始地址
烧录后程序无法运行 1. BIN 文件起始地址错误;2. 数据丢失 / 篡改 1. 确认烧录起始地址为 0x08000000;2. 校验 BIN 与 HEX 文件数据 1. 重新烧录并设置正确地址;2. 重新转换并校验
程序功能异常 1. 转换时地址偏移错误;2. 冗余数据裁剪过度 1. 核对转换命令的 --offset 参数;2. 检查裁剪后的地址是否完整 1. 修正地址偏移;2. 恢复裁剪的必要数据

8.3 工具兼容类问题

问题现象 可能原因 排查步骤 解决方案
MDK v6 中 fromelf 路径找不到 1. 未安装 ARMCLANG 编译器;2. 路径错误 1. 检查 Pack Installer 中是否安装 ARM Compiler 6;2. 核实路径为ARMCLANG/bin 1. 安装 ARM Compiler 6;2. 使用正确路径调用工具
第三方工具不支持大文件 1. 工具内存限制;2. 版本过旧 1. 查看工具文档的文件大小限制;2. 升级工具到最新版 1. 分块转换后合并;2. 更换支持大文件的工具
Linux 下转换中文路径失败 1. 工具不支持中文编码;2. 路径包含特殊字符 1. 查看工具编码支持;2. 核对路径字符 1. 将路径改为英文;2. 去掉特殊字符

九、工具选型指南与未来趋势

9.1 工具选型维度(表格)

选型维度 权重 评估标准
功能需求 40% 支持 HEX→BIN、批量转换、地址自定义
兼容性 25% 支持 STM32 全系列、多系统、大文件
易用性 20% 可视化界面、操作步骤≤3 步、拖放支持
稳定性 10% 转换成功率≥99%、无数据篡改
成本 5% 开源免费、无广告

9.2 不同场景下的工具推荐

应用场景 推荐工具 推荐理由
开发阶段(单工程) MDK 内置 fromelf.exe 一键转换,无需额外工具
测试阶段(无 MDK) STM32CubeProgrammer 官方工具,转换 + 烧录一体化
量产阶段(批量转换) 批处理脚本 + fromelf.exe 自动化程度高,效率快
进阶场景(数据编辑) WinHex 支持数据修改与校验

9.3 嵌入式文件格式转换的未来趋势

  1. 自动化与集成化:IDE(如 MDK、STM32CubeIDE)内置更智能的转换功能,支持自动合并、校验、裁剪;
  2. 智能化校验:AI 辅助检测转换异常(如地址错误、数据丢失),提前预警;
  3. 轻量化工具:工具体积更小(<10MB),转换速度提升 50%;
  4. 多格式兼容:支持更多嵌入式文件格式(如 SREC、ELF)的互转。

十、总结与学习资源推荐

10.1 核心知识点总结

  • HEX 是 ASCII 文本文件,含地址 / 校验;BIN 是纯二进制文件,体积小、烧录快;
  • 转换方法:MDK 内置 fromelf(推荐)、命令行、第三方工具;
  • 关键注意事项:路径规范、地址正确、数据校验。

10.2 学习资源推荐

  • 官方文档:Keil MDK 帮助文档、STM32CubeProgrammer 用户手册;
  • 技术博客:CSDN 嵌入式板块、知乎 "嵌入式开发" 专栏;
  • 开源项目:GitHub 上的 hex2bin 脚本、STM32 固件工具库。
相关推荐
咸蛋-超人11 小时前
聊一聊 - STM32的堆和栈空间怎么分配
stm32·单片机·嵌入式硬件
raindrops.13 小时前
STM32之LL库使用(二)
stm32·单片机·嵌入式硬件
单片机系统设计16 小时前
基于STM32的水质检测系统
网络·stm32·单片机·嵌入式硬件·毕业设计·水质检测
Y1rong18 小时前
STM32之IIC
stm32·单片机
光子物联单片机1 天前
STM32传感器模块编程实践(十七)DIY智能电子门锁套件模型
c语言·stm32·单片机·嵌入式硬件·mcu
raindrops.1 天前
STM32之LL库使用(一)
stm32·单片机·嵌入式硬件
麻辣长颈鹿Sir1 天前
STM32出现FLASH擦除失败异常现象分析及解决方法
stm32·单片机·嵌入式硬件·flash写入失败·stm32g070·类内构造函数定义域异常
码咔吧咔1 天前
STM32 MCU 的引脚分类
stm32·单片机·嵌入式硬件
意法半导体STM321 天前
【文末送NUCLEO-G431RB】一文说明白STM32G4双Bank启动与升级 LAT1596
前端·数据库·stm32·单片机·嵌入式硬件·mcu·stm32开发
ting_zh1 天前
TIM 简介
stm32·tim