keil如何生成hex:通过工程配置一键编译输出固件文件

keil如何生成hex:通过工程配置一键编译输出固件文件

刚开始学单片机开发的时候,最头疼的不是写代码、调程序,而是忙活大半天写完程序,愣是搞不懂keil如何生成hex文件,每次编译完只有报错提示,死活找不到需要的固件文件,白白耽误好多调试时间。

最开始操作的时候,完全没找对入口。直接点击了Keil界面上的编译按钮,看着进度条跑完,提示编译成功,就以为hex文件自动生成了。点开工程文件夹翻来翻去,只有c文件、h文件和编译生成的obj文件,根本没有后缀为hex的文件。反复编译了三四次,结果一模一样,当时一度以为是软件安装出了问题,甚至打算重新安装Keil。

后来盯着软件界面的菜单栏挨个点,才发现问题根本不在编译操作上,是工程配置压根没开输出hex的权限。很多人默认新建工程后直接写代码编译,忽略了这个最基础的设置,这也是大部分新手生成不了hex的核心原因。

点开Target旁边的Output选项卡,这里藏着最关键的设置。窗口里有一个Create HEX File的勾选框,默认状态是未勾选的,这就是所有问题的根源。之前所有的编译操作,都只是单纯校验代码语法、生成中间文件,没有执行固件输出的指令,自然不会产生hex文件。

勾选这个选项之后,还需要注意下方的HEX format格式选择。一开始随手选了默认选项,后续烧录的时候直接报错,设备无法识别固件。查过实操案例才清楚,51单片机统一选择Hex-80,STM32系列芯片选择Hex-386,选错格式就算生成了hex文件,也是无效文件,根本用不了。

设置完成后不需要保存工程,直接关闭配置窗口就行。回到主界面,点击重构编译按钮,不要用快速编译,快速编译只会更新修改的代码,重构会完整执行一遍全部编译输出流程,确保配置生效。

等待编译进度条结束,查看底部的编译日志,日志末尾会明确显示“creating hex file...”的字样,这就代表输出流程已经顺利完成。

打开电脑上的工程根目录文件夹,不用去子文件夹里找,生成的hex文件会直接保存在工程主目录中,文件名和你的工程命名完全一致。双击打开文件可以看到一串十六进制代码,这就是可以直接用于烧录的有效固件文件。

试过好几次简化操作,发现跳过重构、只用普通编译,偶尔会出现配置不生效、无hex文件的情况。哪怕配置全部正确,单次普通编译也有可能失效,重构编译是最稳妥、零翻车的操作方式。

后续所有的单片机工程,只要新建项目后,第一时间打开Output配置勾选生成选项、选对对应芯片格式,后续每次编译都能稳定产出hex文件,再也没出现过找不到文件、文件无效的问题。

最后一次调试项目时,完成全部代码修改后,直接点击重构编译,三秒左右日志提示hex文件生成成功,随即打开文件夹取出固件文件,导入烧录软件完成设备烧录测试。

了解更多百科知识请访问 百科