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、不同系列之间程序移植

待续。。。。

STM32单片机不同型号之间程序适配相关推荐

  1. 40st-m00330 型伺服电机STM32单片机PWM脉冲控制

    项目需要控制丝杠在一定范围内来回移动,一个来回需要控制10s,丝杠由40st_m00330 型伺服电机(见图2)转动带动.实现控制分为两部分,第一部分是对伺服电机控制器的设置基础,如下图1所示:第二部 ...

  2. stm32f103各个型号芯片之间程序移植(stm32的兼容问题)

    stm32f103各个型号芯片之间程序移植(stm32的兼容问题) 1.stm32f103系列的各个型号的芯片差别一般不大,都是一些flash大小不一样,一般是向下兼容(大容量芯片兼容中容量芯片)还有 ...

  3. 单片机入门学习五 STM32单片机学习二 跑马灯程序衍生出的stm32编程基础

    上篇文章 单片机入门学习四 STM32单片机学习一 跑马灯程序和创建工程 仅介绍了入门程序及其编译运行过程,下面开始对stm32的一些基础知识做一个记录. 1.stm32f103zet6(上篇问题3 ...

  4. 【TB-02模组专题⑤】微信小程序通讯TB02 模块控制 STM32 单片机LED灯

    本<安信可ble mesh蓝牙模组TB-02模组专题>系列博客学习由官方博客 CSDN安信可博客 潜心所力所写.如有不对之处,请留言,我们及时更改. 1.BLE MESH开发环境linux ...

  5. 对PS2遥控手柄与stm32单片机通信的理解(结合平衡小车之家的说明和程序)

    为了更好地应用PS2遥控手柄,我想尽可能理解一下它与stm32单片机间通信控制的过程,首先看了平衡小车之家给的PS2遥控手柄使用说明,讲解的内容比较简洁,光凭这个说明不能很轻易地理解配套的程序逻辑,接 ...

  6. 单片机右摇杆c语言函数英文,对PS2遥控手柄与stm32单片机通讯的理解(结合平衡小车之家的说明和程序)...

    为了更好地应用PS2遥控手柄,我想尽量理解一下它与stm32单片机间通讯控制的过程,首先看了平衡小车之家给的PS2遥控手柄使用说明,讲解的内容比较简洁,光凭这个说明不能很轻易地理解配套的程序逻辑,接下 ...

  7. 基于STM32单片机的密码锁(Proteus仿真、程序)

    基于STM32单片机的密码锁 功能描述: 由STM32F103单片机最小系统+ 4*4矩阵键盘+LCD1602液晶显示+蜂鸣器+继电器模块 1.采用STM32F103为主控芯片 2.通过4*4矩阵键盘 ...

  8. 单片机STM32入门——(1)程序结构

    单片机之STM32入门--(1)程序结构 引言 1.初识单片机 1.1初始配置 1.2程序下载 2.GPIO的使用 2.1资源下载 2.2初始化源代码 3.程序结构 3.1文件的建立 3.2程序结构源 ...

  9. STM32单片机程序dll实现

    简介 一个Windows程序一般是由一个exe和多个dll文件组成,在exe程序运行时调用dll的二进制代码,这样做相对所有的程序都写到一个exe文件里边有有几个优势: 1.增加代码的复用,比如Dui ...

最新文章

  1. java内存模型 年轻代/年老代 持久区
  2. java面试题001
  3. 如何让两个输入框保持长度一直_投篮如何保持直线,为什么有些职业球员手臂弯曲投篮一直直...
  4. linux mysql 密码文件怎么打开文件,Oracle数据库密码文件创建与使用
  5. HTML标签类型及特点
  6. 计算机知识小技巧,计算机知识---基本操作小技巧.pptx
  7. MATLAB Floyd算法
  8. uniapp uni.request GET方式请求,不能直接传数组解决方法
  9. 第五节:泛型(泛型类、接口、方法、委托、泛型约束、泛型缓存、逆变和协变)
  10. linux 文件怎么不让删,请问如何设置权限,可以禁止用户删除文件
  11. php GD库文字居中,PHP GD ttftext居中对齐
  12. 网易:层次遍历二叉树
  13. linux更改root密码_如何在Linux中更改root密码
  14. TDA4VM芯片手册阅读笔记
  15. Pascal VOCdata数据集读取(pytorch)
  16. 算法基础课【合集1】
  17. uniapp-真机测试
  18. 创造与魔法服务器维护,创造与魔法为什么服务器维护 | 手游网游页游攻略大全...
  19. 借助近距离通信,实现手机作为游戏控制器掌控大屏游戏
  20. OpenCV技巧 | 二值图孔洞填充方法与实现(附Python/C++源码)

热门文章

  1. nodejs: buff流转图片 base64图片
  2. 计算机考研各科时间安排,计算机考研书目、心得、时间安排等.doc
  3. 如何用 Downie 自定义模式抓取视频
  4. FPGA入门例程:时钟分频-用50MHz产生12.5MHz的4分频时钟
  5. sharding-proxy和sharding-ui 简介与v5.0.0-beat版本搭建配置
  6. 有限长序列的z变换收敛域_求出以下序列的Z变换及收敛域
  7. Linux(Ubuntu)
  8. 吴恩达dalao教你如何读论文(翻译)
  9. 【css】转盘游戏实现
  10. [附源码]java毕业设计学生宿舍管理系统