HEX 和 BIN 文件区别

两者都是单片机烧录常用文件,BIN 是纯二进制原始数据,HEX 是带地址、校验的文本格式

1.BIN(Binary,二进制文件)

  • 内容:就是芯片 Flash 里实实在在的原始二进制机器码,只有数据,没有地址信息
  • 格式:二进制,不是文本,记事本打开是乱码。
  • 地址规则:文件第一个字节对应烧录起始地址,整个文件连续存放。
  • 大小:等于实际数据字节数。例如代码占用 10KB,bin 文件就是 10KB。
  • 烧录工具:必须手动指定烧录起始地址,工具不知道该写到 Flash 哪个位置。

✅优点:体积最小,直接镜像,解析速度快。 ❌缺点:不带地址、校验;不能存在多个不连续存储块。


2.HEX(Intel‑HEX,英特尔十六进制文件)

  • 内容:ASCII 文本格式,可以用记事本直接打开阅读,每一行记录:长度、起始地址、数据、校验和。
  • 自带地址信息:每段数据标明该写到 Flash 哪个地址,烧录软件自动解析地址,不需要手动填起始地址
  • 支持不连续地址:Flash 中多段分散的代码,HEX 可以完整保存;BIN 做不到。
  • 自带校验,烧录时可以做简单校验防出错。
  • 文件体积:比 BIN 大很多,1 字节原始数据会变成 2 个 ASCII 十六进制字符,再加行头地址校验。

✅优点:自带地址、校验,支持多段非连续存储,烧录不易出错。 ❌缺点:文件更大,需要工具解析。

核心对比表

表格

项目BINIntel‑HEX
文件类型 二进制 ASCII 文本
地址信息 无,依赖外部指定 内置每行地址
校验 每行带校验和
多段不连续数据 不支持 支持
文件大小 最小 更大
打开查看 乱码 记事本可读
烧录 必须设置起始地址 自动识别地址

实际工程场景

  1. STM32、PY32 等 MCU:
    • Keil/IAR 既可以输出 HEX 也可以输出 BIN;
    • 下载器如 ST‑Link 烧录 HEX 最省事,不用管地址
    • BIN 多用于 OTA 升级、固件拷贝,需要自己记住固件存放地址。
  2. 转换:工具可以互相转换 hex2bin / bin2hex,bin 转 hex 必须给定起始地址。

举个通俗例子

  • BIN:一袋子数据,只知道内容,不知道该放到内存哪个位置,需要人告诉它放哪。
  • HEX:带标签的袋子,每一块数据都写好了 “该放到哪个地址”,工具自己就知道放哪里。

注意:还有 Motorola‑SREC (S19),功能类似 HEX,只是格式不同,不常用。

posted @ 2026-08-21 15:00  Sean_hn  阅读(23)  评论(0)    收藏  举报