stm32新手入门遇到的问题

1,在使用FW3.5搭建工程时,由于stm32f10x.h头文件里面包含了LD、MD及HD全系列的芯片,所以,在实际使用过程中,需要首先配置你当前使用的是那一类存储量的芯片。

#35:#error directive:“please...”

问题出在stm32f10x.h的第95行:

#if !defined (STM32F10X_LD) && !defined (STM32F10X_LD_VL) && !defined (STM32F10X_MD) && !defined (STM32F10X_MD_VL) && !defined (STM32F10X_HD) && !defined (STM32F10X_HD_VL) && !defined (STM32F10X_XL) && !defined (STM32F10X_CL)

 #error "Please select first the target STM32F10x device used in your application (in stm32f10x.h file)"

#endif

 

这个错误,其实在stm32f10x.h第75行有提示:

 

在target option里面的C++选项下的define里面加入USE_STDPERIPH_DRIVER, STM32F10X_HD_VL即可

2.keil编译时报错:error: L6002U: Could not open file .\***\core_cm3.o

网上找图( 我自己也遇到过)

我之前也遇到过这个问题,原因可能是之前我安装过keil4,卸载后有残留的文件在c盘,后面运行keil5的stm32历程时,编译就出现冲突了。我是重装系统,解决的,用的win10系统。
网上找到了比较科学的解释和解决方法: 正如各位大师所分析的那样是库版本引起的冲突,MDK4.7的库已经升级到CMSIS2.X版本以上了,这次的MDK5.X版已经使用的是CMSIS3.X以上,并且最重要的就是很多元件包没有需要自己根据需要安装,我在安装完ST的元件后,手贱又安装了ARM.CMSIS.3.20.3.pack,这个文件会安装到windows的目录中去,于是版本造成的冲突在卸载MDK5.0后,再安装此前的版本却因ARM.CMSIS.3.20.3并没卸载和删除而始终出错.解决办法就是将windows目录中的这个文件找到卸载并完全删除,然后再安装MDK新版,工程用CMSIS2.1版(我现在用的是官网下载的3.02版).安装后按照几位师傅指导重新加载工程,编译通过,下载后程序跑起来了!

 

 

这个是网友的解决办法

如果你是跟着秉火的板子学的他会让你新建个group命名为CMSIS里面存放CORE_M3的文件,最简单的就是直接把这两个从工程中删去然后重新编译就解决了

3.

在建立main函数后,初步编译使出现的另外两个问题:

lphaff.axf:Error:L6218E:Undefined symbol RCC_APB2PeriphResetCmd (referred from stm32f10x_gpio.o).

lphaff.axf:Error:L6218E:Undefined symbol main (referred from rtentry2.o).

原因:

 

如上图1所示,在该程序中实际上使用了stm32f10x_RCC.c里面的函数RCC_APB2PeriphResetCmd函数,却没有在工程里面添加这个源文件。

猜你喜欢

转载自blog.csdn.net/weixin_41445387/article/details/81945964