STM32固件库的下载移植

————————————————
版权声明:本文为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,再次运行

在这里插入图片描述

 

运行成功

在这里插入图片描述

 

这样基本上是弄好了,但是不完全,这只是一个移植过程,后面还是要根据自己的程序进行一个头文件的移植,还有更改,不然就会报错
我移完固件库后也报错了,但是慢慢弄就弄好了,每个人的程序环境不一样,所以还是要耐心解决报错

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值