zhaohang 发表于 2022-4-19 18:15

用keil编写单片机程序,修改代码后编译,结果hex文件的内容不变,何故?

用keil编写c语言的单片机程序,运行后觉得延时不够,增加延时后成功保存了c语言程序,但是编译后生成的hex文件的内容不变,运行结果照旧,也就是无法调程序,不知道是哪里操作有误?谢谢大家的指点!

hamwang 发表于 2022-4-19 18:39

你把原来的hex 直接删除掉试试,再编译看看有没有生成新的hex

zhaohang 发表于 2022-4-19 19:06

好的,我试试。谢谢啦!

zhaohang 发表于 2022-4-19 20:39

试了。删掉就行了。但是如果不删掉老的,老的就不能被新的替代,怎么会是这样呢?

zhaohang 发表于 2022-4-19 20:48

现在删了老的,新的还是不能替换老的,真是奇了怪了!

zhaohang 发表于 2022-4-19 21:10

找到原因了。不需要删老的。要在STC-ISP里重新点“打开程序文件”并选择hex文件才行,否则它就假装给你烧了一次程序,实际上没有烧。

keetian2 发表于 2022-4-19 22:29

zhaohang 发表于 2022-4-19 21:10
找到原因了。不需要删老的。要在STC-ISP里重新点“打开程序文件”并选择hex文件才行,否则它就假装给你烧了 ...

是isp已加载旧hex到缓存,并没有刷一次读一次文件,有设置每次都重新加载的

zhaohang 发表于 2022-4-20 13:42

对。应该是把老的刷进去了

dqp05 发表于 2022-4-20 13:53

keetian2 发表于 2022-4-19 22:29
是isp已加载旧hex到缓存,并没有刷一次读一次文件,有设置每次都重新加载的
...

我用另一个公司的单片机软件开发系统,也碰到这样问题;

只要编译,hex文件就会更新;

但烧写的hex文件,不会自动跟随更新;

我感觉这样操作不人性,不符合常规思维;

拓荒牛 发表于 2022-4-21 09:12

只用keil来编译,写代码和烧录都尽量不用这个.

kkstun 发表于 2022-4-21 10:05

你是编译了单个文件吧,选全部编译。

zhaohang 发表于 2022-4-24 00:14

应该是你如果不重新选择hex文件,它就把上一次烧录用的并存放在某处的hex文件再次烧进单片机。
页: [1]
查看完整版本: 用keil编写单片机程序,修改代码后编译,结果hex文件的内容不变,何故?