STM32单片机不同型号之间程序适配

STM32的单片机中,同一系列(如F0、F1、F4)不同型号(拿F1来说,如F103xB、F103xC、F103xE等)的芯片FLASH大小、RAM大小、外设会有所差异,但一般在程序编程的时候,这些芯片之间是可以互换的,只需要修改成对应的启动文件即可,而不需要在换了一个芯片后,又重新建立工程,将代码重新复制一遍。自己就干过这种蠢事,所以记忆比较深刻。在修改工程时候,需要知道芯片的容量大小、引脚数据等,这些都可以通过芯片的具体型号看出来。

1、STM32芯片命名规则

“R”:芯片引脚数量,常用的有C(48)、R(64)、V(100)、Z(144)

“8”:芯片容量,常用的有8(64K)、B(128K)、C(256K)、E(512K)

 

2、芯片容量(常用的F1系列)

小容量产品:是指闪存存储器容量在16K至32K字节之间的STM32F101xx、STM32F102xx和STM32F103xx微控制器。

中容量产品:是指闪存存储器容量在64K至128K字节之间的STM32F101xx、STM32F102xx和STM32F103xx微控制器。

大容量产品:是指闪存存储器容量在256K至512K字节之间的STM32F101xx和STM32F103xx微控制器。

互联型产品:是指STM32F105xx和STM32F107xx微控制器

小容量

4(16K)、5(24K)、6(32K)

中容量

8(64K)、9(72K)、A(96K)、B(128K)

大容量

C(256K)、D(384K)、E(512K)

超大容量

F(768K)、G(1024K)

注意:对于F1系列的芯片大容量产品的RAM主存储器每页大小为2K,如【下图】,而中容量和小容量的产品每页大小只有1K。

 

3、同系列(STM32F1来说)不同型号之间程序移植

同系列不同型号的单片机之间程序移植相对好改,修改和需注意内容如下:

修改工程的device设备为对应的单片机型号

修改工程的启动文件(注意:标志库和hal的启动文件位置和命名是不一样的)

ST提供的V4.2.0版本的hal库中,启动文件存放在 .\CMSIS\Device\ST\STM32F1xx\Source\Templates 文件夹下,有arm、gcc、iar编译器下对应的启动文件,启动文件不是按照芯片的具体型号来定义的,而是按芯片相同容量的最大容量定义的,同系列相同容量的芯片公用同一个启动文件,有小容量的x6、中容量的xb、大容量的xe、超大容量的xg

ST提供的V3.5.0版本的STD库中,启动文件存放在 .\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup 文件夹下,有arm、gcc、iar、TrueSTUDIO编译器下对应的启动文件,启动文件不是按照芯片的具体型号来定义的,而是按芯片容量,同系列相同容量的芯片公用同一个启动文件,有小容量的ld、中容量的md、大容量的hd、互联型cl、超高密度型xi。

大中小之外还有后面跟vl、cl 、 xl后缀 的文件

CL:connective line 指的是互联型产品  stm32f105xx和stm32f107xx 系列

Xl :extreme line 超高密度型 产品  这种应该是stm32f101xx和stm32f103xx容量在MB级别的产品

VL:valuable line 超值型 产品 这种是 stm32f100系列 

 

③ 在 Target(Keil编译器中) 或 Linker(IAR编译器中)选项栏中修改芯片的具体FLASH大小和RAM大小

④ 修改默认添加宏,这里默认添加宏的作用是在 stm32fzxx.h文件中能自动将芯片对应的头文件添加进工程中,这里的宏定义在标准库和hal库中定义也是不一样的,

在V4.2.0版本的hal库中是这样定义的:STM32F103x6、STM32F103xB、STM32F103xE...;而在V3.5.0版本的STD库中是这样定义的:STM32F10X_LD、STM32F10X_MD、STM32F10X_HD...。刚好跟各自的库启动文件名称是对应的,下图是以hal库为例的

4、不同系列之间程序移植

待续。。。。

 

 

 

 

 

 

 

 

  • 28
    点赞
  • 135
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
### 回答1: 有几种向STM32单片机最小系统里面烧录程序的方法:1. 使用ST-Link调试器;2. 使用STMicroelectronics的STM32CubeProgrammer软件;3. 使用UART通信;4. 使用CAN通信;5. 使用USB DFU(Device Firmware Upgrade)。 ### 回答2: 向STM32单片机最小系统烧录程序有多种方法: 1. JTAG/SWD下载器:使用专用下载器(如ST-Link)通过JTAG或SWD接口连接到单片机的调试/下载接口上,将程序烧录到单片机中。这是一种常用的烧录方法,可以下载程序和进行调试。 2. Bootloader:STM32单片机通常内置有Bootloader,通过串口或USB接口连接到计算机,通过特定的通信协议(如UART或DFU)将程序烧录到单片机内存中。这种方法可以在不使用额外下载器的情况下进行烧录,可以方便地进行固件升级和更新。 3. 外部存储介质:一些STM32单片机支持使用外部存储介质(如SD卡、EEPROM等)来存储程序。将程序文件保存在存储介质中,然后让单片机从所选介质中加载程序。 4. 软件更新:通过串口或USB接口将单片机连接到计算机,使用相关软件(如ST-Link Utility、Keil uVision等)将程序下载到单片机内存中。这种方法需要在计算机上安装特定软件,并按照软件的指导进行操作。 无论选择哪种烧录方法,都需要使用相关的软件工具和适配硬件,同时还需要了解单片机的规格和接口要求。 ### 回答3: 向STM32单片机最小系统烧录程序有以下几种方法: 1. 通过ST-Link调试器烧录:将ST-Link调试器连接到单片机调试接口上,通过ST-Link Utility等工具将程序烧录到单片机的Flash存储器中。 2. 通过串口烧录(Bootloader):有些STM32单片机自带串口Bootloader,可以通过串口将程序烧录到单片机内部的Flash存储器。这种方法需要将BOOT0引脚接地,然后使用烧录软件(如ST Visual Programmer)通过串口烧录程序。 3. 通过外部EEPROM烧录:有些STM32单片机支持通过外部EEPROM存储器烧录程序。将程序烧录到EEPROM中,然后通过引导程序程序加载到单片机的Flash存储器中。 4. 通过SD卡烧录:有些STM32单片机支持从SD卡读取程序并加载到Flash存储器中。将程序存储在SD卡上,然后通过引导程序从SD卡读取并烧录程序。 需要注意的是,具体的烧录方法和工具可能会因STM32单片机型号不同而有所差异。程序烧录之前需要确保单片机的电源正常供应并且与烧录设备之间的连接正确可靠。同时,在烧录过程中需要根据具体工具的要求进行相应的设置和操作,确保程序能够正确烧录到单片机中。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值