在线时间1 小时
UID204986
ST金币0
蝴蝶豆0
注册时间2010-8-3
新手上路
- 最后登录
- 1970-1-1
|
a0a.1 0b0c
以前使用的是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 继续编译,编译通过了。
可能电脑的配置有问题了吧,本质还没有解决! |
|