没有合适的资源?快使用搜索试试~ 我知道了~
首页从 STM32F1 移植到 STM32F0
从 STM32F1 移植到 STM32F0
需积分: 50 38 下载量 125 浏览量
更新于2023-03-16
评论 3
收藏 2.09MB PDF 举报
对于 STM32 微控制器应用的设计人员而言,将一种微控制器类型轻松替换成同一产品系列 的另一种微控制器非常重要。随着产品要求不断提高,对存储器大小或 I/O 数量的需求也相 应增加,因此设计人员经常需要将应用程序移植到其它微控制器。
资源详情
资源评论
资源推荐
2013 年 01 月文档 ID 023072 第 2 版 1/57
AN4088
应用笔记
从 STM32F1 移植到 STM32F0
简介
对于 STM32 微控制器应用的设计人员而言,将一种微控制器类型轻松替换成同一产品系列
的另一种微控制器非常重要。随着产品要求不断提高,对存储器大小或 I/O 数量的需求也相
应增加,因此设计人员经常需要将应用程序移植到其它微控制器。另一方面,为了降低成
本,用户可能被迫转换为更小的元件并缩减 PCB 面积。
本应用笔记旨在帮助您分析从现有的 STM32F1 器件移植到 STM32F0 器件所需的步骤。本
文档收集了最重要的信息,并列出了需要注意的重要事项。
要将应用程序从 STM32F1 系列移植到 STM32F0 系列,用户需要分析硬件移植、外设移植
和固件移植。
为了充分利用本应用笔记中的信息,用户应熟悉 STM32 微控制器系列。可以参考 www.st.com
网站提供的以下文档。
● STM32F1 系列参考手册(RM0008 和 RM0041)、STM32F1 数据手册和 STM32F1 Flash
编程手册(PM0075、PM0063 和 PM0068)。
● STM32F0 系列参考手册 (RM0091) 和 STM32F0 数据手册。
有关整个 STM32 系列的概述以及各 STM32 产品系列不同特性的对比,请参见 AN3364
STM32
微控制器应用的移植和兼容性指南
。
表
1 列出了本应用笔记所涉及的微控制器和开发工具。
表 1. 适用产品
类型 型号
微控制器
STM32F0xxxx
STM32F1xxxx
www.st.com
目录 AN4088
2/57 文档 ID 023072 第 2 版
目录
1 硬件移植 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2 启动模式兼容性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
3 外设移植 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
3.1 STM32 产品交叉兼容性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
3.2 系统架构 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
3.3 存储器映射 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
3.4 复位和时钟控制器 (RCC) 接口 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
3.5 DMA 接口 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
3.6 中断向量 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3.7 GPIO 接口 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
3.8 EXTI 中断源选择 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
3.9 Flash 接口 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
3.10 ADC 接口 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
3.11 PWR 接口 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
3.12 实时时钟 (RTC) 接口 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
3.13 SPI 接口 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
3.14 I2C 接口 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
3.15 USART 接口 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
3.16 CEC 接口 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
4 使用库进行固件移植 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
4.1 移植步骤 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
4.2 RCC 驱动程序 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
4.3 Flash 驱动程序 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
4.4 CRC 驱动程序 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
4.5 GPIO 配置更新 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
4.5.1 输出模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
4.5.2 输入模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
4.5.3 模拟模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
4.5.4 复用功能模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
文档 ID 023072 第 2 版 3/57
AN4088 目录
3
4.6 EXTI 线 0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
4.7 NVIC 中断配置 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
4.8 ADC 配置 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
4.9 DAC 驱动程序 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
4.10 PWR 驱动程序 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
4.11 备份数据寄存器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
4.12 CEC 应用程序代码 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
4.13 I2C 驱动程序 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
4.14 SPI 驱动程序 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
4.15 USART 驱动程序 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
4.16 IWDG 驱动程序 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
5 版本历史 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
表格索引 AN4088
4/57 文档 ID 023072 第 2 版
表格索引
表 1. 适用产品 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
表 2. STM32F1 系列和 STM32F0 系列引脚排列区别 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
表 3. 启动模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
表 4. STM32 F1 与 F0 系列外设兼容性分析对比. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
表 5. STM32F0 和 STM32F1 系列之间的 IP 总线映射区别. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
表 6. STM32F0 系列与 STM32F1 系列之间的 RCC 区别 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
表 7. 将系统时钟配置代码从 F1 移植到 F0 的示例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
表 8. 用于外设访问配置的 RCC 寄存器. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
表 9. STM32F1 系列与 STM32F0 系列之间的 DMA 请求区别 . . . . . . . . . . . . . . . . . . . . . . . . . . 16
表 10. STM32F1 系列与 STM32F0 系列之间的中断向量区别. . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
表 11. STM32F1 系列与 STM32F0 系列之间的 GPIO 区别 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
表 12. STM32F0 系列与 STM32F1 系列之间的 Flash 区别 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
表 13. STM32F0 系列与 STM32F1 系列之间的 ADC
区别 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
表 14. STM32F0 系列与 STM32F1 系列之间的 PWR 区别. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
表 15. STM32F10x 与 STM32F0xx 时钟源 API 对应关系 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
表 16. STM32F10x 与 STM32F0xx Flash 驱动程序 API 对应关系 . . . . . . . . . . . . . . . . . . . . . . . . 31
表 17. STM32F10xx 与 STM32F0xx CRC 驱动程序 API 对应关系 . . . . . . . . . . . . . . . . . . . . . . . . 33
表 18. STM32F10x 与 STM32F0xx MISC 驱动程序 API 对应关系 . . . . . . . . . . . . . . . . . . . . . . . . 38
表 19. STM32F10x 与 STM32F0xx DAC 驱动程序 API 对应关系 . . . . . . . . . . . . . . . . . . . . . . . . . 40
表 20. STM32F10x 与 STM32F0xx PWR 驱动程序 API 对应关系 . . . . . . . . . . . . . . . . . . . . . . . . 41
表 21. STM32F10xx 与 STM32F0xx CEC 驱动程序 API 对应关系 . . . . . . . . . . . . . . . . . . . . . . . . 43
表 22. STM32F10xx 与 STM32F0xx I2C 驱动程序 API 对应关系 . . . . . . . . . . . . . . . . . . . . . . . . . 45
表 23. STM32F10xx 与 STM32F0xx SPI 驱动程序 API 对应关系 . . . . . . . . . . . . . . . . . . . . . . . . . 49
表 24. STM32F10x 与 STM32F0xx USART 驱动程序 API 对应关系. . . . . . . . . . . . . . . . . . . . . . . 51
表 25. STM32F10xx 与 STM32F0xx IWDG 驱动程序 API 对应关系 . . . . . . . . . . . . . . . . . . . . . . . 55
表 26. 文档版本历史 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
文档 ID 023072 第 2 版 5/57
AN4088 硬件移植
56
1 硬件移植
入门级 STM32F0 与通用 STM32F1xxx 系列的各引脚兼容。所有外设共用这两个产品系列的
相同引脚,但二者在封装上存在微小差别。从 STM32F1 系列转换到 STM32F0 系列非常简
单,因为只有少数引脚受到影响(
表
2 中用粗体指出了受影响的引脚)。
注:
PB2
适用于
STM32F05x
,而
NPOR
适用于
STM32F06x
。
除非用户为应用程序在 VSS/VDD 2 和 4 位置处使用了 2 个或 4 个 GPIO,否则从 F1 移植到
F0 时不会影响引脚排列,具体取决于使用的封装。
表 2. STM32F1 系列和 STM32F0 系列引脚排列区别
STM32F1 系列 STM32F0 系列
QFP48 QFP64
引脚排列
QFP48 QFP64
引脚排列
55PD0 - OSC_IN 5 5 PF0 - OSC_IN
66PD1 - OSC_OUT 6 6 PF1 - OSC_OUT
-18VSS_4 -18PF4
-19VDD_4 -19PF5
35 47 VSS_2 35 47 PF6
36 48 VDD_2 36 48 PF7
20 28 BOOT1/PB2 20 28 PB2/NPOR
剩余56页未读,继续阅读
wjxlgd1203020119
- 粉丝: 0
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- c++校园超市商品信息管理系统课程设计说明书(含源代码) (2).pdf
- 建筑供配电系统相关课件.pptx
- 企业管理规章制度及管理模式.doc
- vb打开摄像头.doc
- 云计算-可信计算中认证协议改进方案.pdf
- [详细完整版]单片机编程4.ppt
- c语言常用算法.pdf
- c++经典程序代码大全.pdf
- 单片机数字时钟资料.doc
- 11项目管理前沿1.0.pptx
- 基于ssm的“魅力”繁峙宣传网站的设计与实现论文.doc
- 智慧交通综合解决方案.pptx
- 建筑防潮设计-PowerPointPresentati.pptx
- SPC统计过程控制程序.pptx
- SPC统计方法基础知识.pptx
- MW全能培训汽轮机调节保安系统PPT教学课件.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0