进行嵌入式开发过程中,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.dll和JLTAgdi.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所有,任何人未经允许禁止转载。