标题: 关于STM32工程建立的几个问题 [打印本页]
作者: 51黑ren 时间: 2015-12-27 04:17
标题: 关于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,在建立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函数,却没有在工程里面添加这个源文件。
添加这个源文件后,问题得以解决。如下图2:
此时,出现的是同类问题的另外一个问题:undefined symbol main...
解决:如前面第一个图里面,是main()写成了mian(),改过来后即可。
3,关于main函数的返回,如图3:
这里是#111-D警告,statement is unreachable,意思就是程序执行不到这里。这个警告是加入return1之后出现的,因为在前面有一个while(1)循环,所以,不会有返回值。
在编译的时候出现这种报错,就是因为出现了无法执行到的指令。直接去掉return1即可。
欢迎光临 (http://www.51hei.com/bbs/) |
Powered by Discuz! X3.1 |