1. 写在前面
最近学习了keil与stc-isp等
2. bug日记
2.1 keil编译后hex文件为空
按照老师描述的方法导入工程后编译产生hex文件,但是当我用stc-isp下载时他却告诉我我没有打开hex文件。我:??? 仔细一看好家伙hex文件进入是空的
解决方法:
魔法笔->output->create hex file->name of executable
在name of executable不能带后缀,如果这里填入HELLO.hex则hex文件将为空
2.2 keil 显示c语言语法不高亮
当我搞定了hex文件的问题后,我又发现了别人的keil看c语言都是高亮显示的,凭什么我没有???
然后我打开edit->configuration->colors&fonts中发现没有C/Cpp Edit File
(edit在工具栏上
搜素一番发现是因为我的keil安装路径含有中文路径,于是我把路径中的中文名修改了,代码出现了高亮。但是这个时候出现了下一个问题。。。
参考知乎链接
2.3 Target not created
修改路径后,高亮显示是有了,但是重新build后提示Target not created。
原来好好的代码怎么突然Target not created了?
原来是修改了安装路径中的名称,keil找不到它的依赖库了。
所以我选择重装一遍keil,解决了问题。
但是出现这个错误不一定是我这个问题,相关参考链接点我
2.4 connection to target system lost
老师演示了如何用keil和stc-isp联合debug,步骤流程和这个博客一致
但是自己尝试是却出现了这个错误:connection to target system lost
由于是第一次使用所以没有设置仿真器,所以无法连接。
导入库
先点击这里
找到keil安装的路径,选择确定即可
然后在keil中的:魔法🖊->debug中进行设置
如果调试的是C语言,6处需要勾选run to main
在5.seting中需要设置串口
然后再根据这个博客尝试一遍,就可以正常debug了。
但是这个debug是基于串口P3.0、P3.1的,如果程序中占用了这两个口就不能使用keil+stc-isp一起调试了
2.5 变量未定义
C语言的旧版本中,变量声明必须在函数或任何作用域的开头,而不能在语句之后。
参考链接
小资料:debug小技巧
3. 小结
每次开始尝试使用新工具都是一个艰难的debug之路,奇奇怪怪的问题层出不穷。我把我遇到的问题和解决的方法列出来,仅供尝试。
keil版本: V4.60.6.10
MDK版本: Version 5.37