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

文章目录

    • 错误示例
    • 我的实际操作一(实际没有解决)
    • 我的实际操作二
    • 真相大白
      • 用户名没有修改 还是中文:
      • 用户名已经修改
      • 乱码原因
    • 学习经验

错误示例

错误如下所示
关于keil编译STM32例程出现错误的解决方法_第1张图片
…\OBJ\LED.axf: error: L6002U: Could not open file …\obj\sys.o: No such file or directory

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

一开始我去按照错误信息所搜,找到了原因,进入控制面板,将temp和tmp进行路径修改,
关于keil编译STM32例程出现错误的解决方法_第2张图片
关于keil编译STM32例程出现错误的解决方法_第3张图片

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

我的实际操作二

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

关于keil编译STM32例程出现错误的解决方法_第4张图片
我问过很多了学长,也在网上查了很久的资料,但一直无法解决这个error,一筹莫展之中,我向老师寻求了帮助。

真相大白

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

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

1、在【C盘根目录】创建【UserData】文件夹
关于keil编译STM32例程出现错误的解决方法_第5张图片
2、打开刚刚创建的【UserData】文件夹

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

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

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

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

关于keil编译STM32例程出现错误的解决方法_第6张图片
7、将你创建好的文件夹中的地址栏中的内容复制下来。关于keil编译STM32例程出现错误的解决方法_第7张图片
8、打开计算机右键-属性-高级系统设置-高级-环境变量
关于keil编译STM32例程出现错误的解决方法_第8张图片
9、修改【TEMP】和【TMP】的环境变量
关于keil编译STM32例程出现错误的解决方法_第9张图片
关于keil编译STM32例程出现错误的解决方法_第10张图片
将原本的环境变量删除,替换为我们之前所创建文件夹的路径【 C:\UserData\AppData\Local\Temp 】
完成后如下图↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
关于keil编译STM32例程出现错误的解决方法_第11张图片

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

用户名已经修改

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

乱码原因

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

学习经验

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

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

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

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

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

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

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

你可能感兴趣的:(STM32,stm32,单片机,arm,嵌入式硬件)