关于keil编译STM32例程出现错误的解决方法

2023-11-02

错误示例

错误如下所示
在这里插入图片描述
…\OBJ\LED.axf: error: L6002U: Could not open file …\obj\sys.o: No such file or directory

我的实际操作一(实际没有解决)

一开始我去按照错误信息所搜,找到了原因,进入控制面板,将temp和tmp进行路径修改,
在这里插入图片描述
在这里插入图片描述

使其不包含中文。并将自己的用户名改成了英文,然后重启电脑再进行编译,但是出乎我的意料,这个错误并没有消失。

我的实际操作二

然后我开始根据错误信息,查看sys文件,发现keil对这个MSR有报错提示,我便复制其中的代码进行查找,在网上查询,以为是什么汇编语言内嵌的一些问题,我按照网上的方法,对代码进行了好几次修改也都毫无进展。

在这里插入图片描述
我问过很多了学长,也在网上查了很久的资料,但一直无法解决这个error,一筹莫展之中,我向老师寻求了帮助。

真相大白

原来我的用户名是中文,而keil安装的路径可能与这个中文有关,而我直接修改用户名,但是对于有些软件来说,他记录的是之前的用户名的文件夹,路径就有一些冲突,从而出现乱码。

用户名没有修改 还是中文:

1、在【C盘根目录】创建【UserData】文件夹
在这里插入图片描述
2、打开刚刚创建的【UserData】文件夹

3、在【UserData】中创建【AppData】文件夹

4、打开【AppData】在其中创建【Local】文件夹

5、打开【Local】在其中创建【Temp】

6、所有的文件创建好了,打开【Temp】文件夹

在这里插入图片描述
7、将你创建好的文件夹中的地址栏中的内容复制下来。在这里插入图片描述
8、打开计算机右键-属性-高级系统设置-高级-环境变量
在这里插入图片描述
9、修改【TEMP】和【TMP】的环境变量
在这里插入图片描述
在这里插入图片描述
将原本的环境变量删除,替换为我们之前所创建文件夹的路径【 C:\UserData\AppData\Local\Temp 】
完成后如下图↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
在这里插入图片描述

点击确定后退出。
再次打开Keil编译即可不再报错

用户名已经修改

这种操作的最后解决办法只能是重装系统了。

乱码原因

因为中文的ascii码是双字节,英文是ascii码单字节,在修改文件夹名称的时候字节没有对齐,所以就变成了乱码。

学习经验

经过我半天的钻研,终于把这个困扰我的问题解决了,我也总结了如下的学习经验。

1.在以后创建文件夹时,最好不要出现中文,以免产生一些不必要的麻烦

2.在看到keil的报错信息后,不要害怕,先看看是不是一些头文件没有包含,或者是头文件定位不准确等自己去解决的简单操作。

3.在确认这个错误你自己无法解决时,直接对其进行copy,打开csdn进行搜索,里面可能有许多人和你有着一样的问题,你就可以在里面寻找解决方案

5.对于有些错误,可以直接复制他的错误代码,例如本文中出现的L6002U,可以更准确的帮你找到错误的原因。

4.如果以上都无法解决,可以向周边厉害的大佬寻求援助,在解决之后将自己的经历记录下来。

经过这次时长半天的bug模式,我体会到原来因为代码不规范或者错误而出现的error并不是最可怕的,反而那些代码没有问题,让你毫无头绪的error才是最致命的。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

关于keil编译STM32例程出现错误的解决方法 的相关文章

随机推荐