[技术讨论]keil常见问题报错及解决办法

文章总结了在使用Keil进行嵌入式开发时可能遇到的问题,包括仿真无法退出、芯片识别失败、错误L6218E、中文字体乱码、浏览信息缺失和GoToDefinition错误。提供了详细的解决方法,如更新JLink驱动、添加库文件、调整编辑器编码和配置Output选项等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

进行嵌入式开发过程中,keil是常用的一个工具,但是在使用过程中经常会出现一些奇奇怪怪的问题,其实很多问题都不难,遇到过一次,下次再遇到就知道怎么解决了,我在这儿将我遇到过得问题进行总结一下,欢迎大家进行补充。
一、keil仿真无法退出
在进行仿真后,有时会无法退出,会提示错误encountered an improper argument,删除所有断点后,encountered an improper argument会消失,但依旧会无法退出仿真。

解决方法:
1、工程路径不要有任何中文
2、将工程目录下的Project.uvoptx文件删除,然后重新编译整个工程

二、识别不到芯片,提示unkown to this version of the jlink software
由于第一次用STM32L431CBT6,插入下载器提示找不到下载器,首先芯片包是有的。
 
原因是keil自身的Jlink驱动版本不够,需要官网下载安装JLINK驱动
https://www.segger.com/downloads/jlink
安装完成后将Jlink文件下的所有文件全部复制,然后我们打开keil安装目录下的ARM-Segger

保留JL2CM3.dllJLTAgdi.dll,其他文件全部用上面的JLINK文件夹下的替换掉,进行这个操作的时候需要将keil关掉。
然后重新进入keil可以看到已经读到了芯片的信息,问题解决


三、提示错误L6218E:Undefined symbol TIM_OC2Init
原因是缺少ST官方库文件,添加对应库文件即可,个人建议可以将ST所有库文件都添加进去,这样就不用担心缺少了。
  


四、注释中的中文字体乱码
在edit-configuration中,Editor-Encoding改为Chinese GB2312即可。需要将乱码删掉,重新输入就不会出现乱码了

 



五、跳转程序定义的时候提示No Browse Information available in ‘…\OBJ\SPI’
如下图想要看uart_init(115200)在哪定义的,结果跳出了错误。
解决方法为:点击魔术棒,选择 Output,勾选 Browse Information
 

六、Go To Definition会跳出多个函数
Go To Definition Of "xxxxxx"的时候会跳出来多个函数,如下图。


这个函数定义在在adc.h里面,main.c里面没有引入头文件,所以需要增加头文件#include “adc.h”,如下图。
重新Go To Definition就只有一个跳转了。

 


---------------------
作者:王小琪
链接:https://bbs.21ic.com/icview-3277670-1-1.html
来源:21ic.com
此文章已获得原创/原创奖标签,著作权归21ic所有,任何人未经允许禁止转载。 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值