以前使用的是MDK4.5 但是没有stm32F3的元器件, 果断的使用了4.6版本了。 但是编译之后出现这样错误: linking... .\Obj\prj.axf: Warning: L6373W: libattrs.map file not found in System Library directory C:\Program Files\ARM\ADSv1_2\LIB\armlib\. Library selection may be impaired. .\Obj\prj.axf: Warning: L6310W: Unable to find ARM libraries. .\Obj\prj.axf: Error: L6411E: No compatible library exists with a definition of startup symbol __main. Target not created 后来查找各个原因终于发现了::::: 以前使用arm的时候 安装了ADS的软件,所以出现了问题,但是卸载了该软件后还是不能编译 原因在于需要把环境变量删除才可以的 我的电脑->属性->高级-环境变量-path里面把d:\Program Files\ARM\ADSv1_2\bin;相似的这句话给删除了就可以了 然后重新打开工程软件, 编译成功了! 在配置st-link的时候需要注意的问题是 记得需要选择上SW这个选项才能识别出来这个stm32的 显示“NO target connected“ 但是驱动没有问题 在设备管理器中海显示出有stlink 后来我查找发现了问题了: 原理是配置了GPIOA的 14 13这两个口了 ” GPIOA_MODER复位后的值为:0x2800 0000,即将GPIO13\14配置为复用模式,但为什么在程序配置了GPIO13\14为输出,并且在目标芯片有复位的情况下也会引起SWD无法仿真、下载的问题。 ” 解决办法: 1、先确认目标板上电。 2、先长按住目标板上的复位键,再点击 Settings,再松开目标板上的复位键。 3、此时KEIL打开Settings的设置对话框,请确认有SWD的内容后,再进行下一步。 4、将STM32F051Disconvery板断电,重新上电。 5、先长按STM32F051Disconvery的复位键,再点击仿真或者下载按钮,再松开复位键。 注:这里点仿真到松开复位键不是每一次都能成功,每次点了仿真键到松开复位键的时间每次都不同,在某一个点时,就可以进入仿真或者下载程序了。板子就恢复正常了。但需要注意的是,在程序里一定要避开对GPIO13\GPIO14的配置。 注意:松开复位键 需要感觉的 太短或者太长都不可以的 。需要多次试验才能够成功。 出现了这个问题::Error: failed to execute 'd:\keil\arm\BIN40\ArmCC' 重装了一遍软件后,还是出现这问题。我就不再点击rebuild 这个按钮了,而是点击build 继续编译,编译通过了。 可能电脑的配置有问题了吧,本质还没有解决! |
RE:stm32f3开发中遇到的问题与解决方案