需要注意的地方:
1、至于为何Unknown Device问题
最后排除法,我觉得是keil版本原因,而正确的方法是用keil4创建stm32工程,即选择使用如下选项:
2、创建工程完毕后,问是否需要添加启动文件的时候要选择否,后期要自行添加启动文件,产生冲突!
冲突则会出现如下错误:
error: L6235E: More than one section matches selector - cannot all be FIRST/LAST.
路径为:
..\STM32固件库v3.5\stm32f10x_stdperiph_lib\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries
路径为:
STM32固件库v3.5\stm32f10x_stdperiph_lib\STM32F10x_StdPeriph_Lib_V3.5.0\Project\STM32F10x_StdPeriph_Template
然后复制下面四个 main.c/stm32f10x_conf.h/stm32f10x_it.c/stm32f10x_it.h
到Source
Legacy Device Database
)
STMicroelectronics
中的STM32F103RBT6
此步选择Legacy Device Database
是关键,不然会出现Unkown Device的错误。
创建3个Group - Source/Library/Core
Group的Source中放置对应工程文件夹中的Source文件
Group的Library中对应放置\Library\STM32F10x_StdPeriph_Driver\src
的源文件
Group的Core放置3个文件,分别是
Library\CMSIS\CM3\CoreSupport
中的core_cm3.c
Library\CMSIS\CM3\DeviceSupport\ST\STM32F10x
中的system_stm32f10x.c
Library\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup\arm
中的startup_stm32f10x_md.s
在Output和Listing选择输出的文件对应工程文件的Output。
设置C/C++选项卡
在Define中加入STM32F10X_MD,USE_STDPERIPH_DRIVER
并设置全部源文件对应头文件的路径,主要3大部分,一是Core中的3个对应的路径,二是标准外设库对应的头文件的路径,三是我们编写的源文件对应头文件路径,一个五个.
至此,固件库的移植已经全部完成,为了验证移植的是否可用,可通过编译工程的方法,但是需要注意编译工程前需要修改下main.c
,使其如下图所示
编译后出现0 error,0 warning
,说明移植正确,可继续往下进行,若出现错误,那就重新返回检查哪一步操作失误。
首先安装colink对应的驱动文件,在加密文件中的嵌入式设计与开发项目加密资料\嵌入式设计与开发\驱动及插件
路径下的CoMDKPlugin-1.3.1.exe
然后选择CooCox Debugger
之后选择Settings,在Debug中设置如下
在Flash Download中设置如下
下载即可,第一步大功告成。