赞
踩
————————————————
版权声明:本文为CSDN博主「繁华如梦静」的原创文章,遵循CC 4.0 BY-SA版权协议。
原文链接:https://blog.csdn.net/xzzszka/article/details/123768623
固件库下载
下载官网地址:https://www.st.com/content/st_com/en.html
Produsts -> Microcontrollers & Microprocessors -> STM32 32-bit Arm Cortex MCUs
找到自己芯片的版本,我这里是 STM32F103VB 型号的芯片,所以路径就是:
STM32 32-bit Arm Cortex MCUs (1201) -> STM32 Mainstream MCUs (419) -> STM32F1 Series (95) -> STM32F103(29)
找到后点击,右侧就会出现所对应的芯片的相关信息,点击自己所需的芯片型号
①处就是芯片的型号, 然后点击② Tool&Software
往下滑,找到固件库 STSW-STM32054 ,点击蓝色处
然后就是进行版本的选择,然后选择下载就行咯(路径没事)。我下载的是3.6.0版本的
下面还有,题内话。
可能会叫输入姓名邮箱之类的一个下载信息,邮箱一定要填正确!!!姓名之类的可以随意填。
会收到这样的一封邮件,点击 Download now 就可以下载。
下载完就得到这个(解完压):
固件库的移植
新建文件夹,创建4个文件夹,
分别是CORE,FWLIB,SYSREM,USER
CORE文件夹
打开固件库,将
路径:keil5\en.stsw-stm32054_v3.5.0\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\CoreSupport 下的
core_cm3.h
core_cm3.c
和路径:keil5\en.stsw-stm32054_v3.5.0\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x 下的
stm32f10x.h
system_stm32f10x.c
system_stm32f10x.h
文件复制到CORE文件夹中
FWLIB文件夹
将路径:keil5\en.stsw-stm32054_v3.5.0\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup\arm 下的
startup_stm32f10x_cl.s
startup_stm32f10x_hd.s
startup_stm32f10x_hd_vl.s
startup_stm32f10x_ld.s
startup_stm32f10x_ld_vl.s
startup_stm32f10x_md.s
startup_stm32f10x_md_vl.s
startup_stm32f10x_xl.s
文件复制到FWLIB文件夹中。
SYSTEM文件夹
将路径:keil5\en.stsw-stm32054_v3.5.0\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\STM32F10x_StdPeriph_Driver 下的
inc
src
文件夹复制到SYSTEM文件夹中
USER文件夹
将路径:keil5\en.stsw-stm32054_v3.5.0\STM32F10x_StdPeriph_Lib_V3.5.0\Project\STM32F10x_StdPeriph_Template 下的
main.c
stm32f10x_conf.h
stm32f10x_it.c
stm32f10x_it.h
文件复制到USER文件夹中,再在USER文件夹中新建一个pro_1文件(以后可以pro_2…),用来存放工程。
然后打开keil5程序
Project -> New uvision Project...
将新建的工程保存在刚刚新建的文件夹pro_1中,填写文件名,注意保存类型为uvproj;uvprojx,然后点击保存
就会出现一个选择芯片的页面,选择所要用的芯片。
我所需芯片在STMicroelectronics -> STM32F1 Series -> STM32F103 -> STM32F103VB 下
找到点击,然后OK
这个是配置芯片的页面,直接点击OK即可。
点击图示按钮,就会出现一个Manage Project ltems弹窗。
(那个‘注’的提示不是这里的,标错)
在Groups中将刚刚创建的四个文件添加进来
然后在这4个组中分别加入刚刚4个文件夹中的文件
点击一次Add就行,点击一次就添加上了,只是那个框不会消失,再点击会重复添加
文件类型有些要注意选择All files才能显现。
添加后的结果就是这个样的
同理,在其他3个组分别加上对应文件,FWLIB组添加全部文件,SYSTEM组添加src文件夹下的全部.c文件
全部添加完成后点击OK即可。
点击按钮,点击 Output 将Create HEX File选上
点击C/C++(4C6),然后在include Path处,点击后面的三个点。
将全部文件都输入,然后点击OK。
可以看到都已经添加上,再次点击OK
打开main.c文件,改成这样(测试一下),然后点击运行
报错1
如果出现这个报错
../../CORE/core_cm3.c(445): error: non-ASM statement in naked function is not supported
点击图示按钮,Target -> ARM Comoiler,将Dse.default.compiler version 6 换成 Dse.default.compiler version 5,然后点击OK,再次进行运行
报错2
报错2:.\Objects\pro_1.sct(7): error: L6235E: More than one section matches selector - cannot all be FIRST/LAST.
点击图示按钮,打开FWLIB,将其他文件全部移除,只留下startup_stm3210x_hd.s,然后点击OK,再次运行
运行成功
这样基本上是弄好了,但是不完全,这只是一个移植过程,后面还是要根据自己的程序进行一个头文件的移植,还有更改,不然就会报错
我移完固件库后也报错了,但是慢慢弄就弄好了,每个人的程序环境不一样,所以还是要耐心解决报错
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。