国产MCU迁移实战:STM32F103代码移植到Air32F103与CH32F203全流程解析
最近两年,国产MCU的崛起给嵌入式开发者带来了更多选择,但同时也带来了移植适配的挑战。上周我接手了一个工业控制项目,需要将原有STM32F103C8T6的代码迁移到Air32F103和CH32F203平台。本以为同是Cortex-M3内核应该很容易,结果在时钟配置和GPIO映射上踩了不少坑。本文将分享完整的移植流程,特别是那些官方文档没有明确指出的细节问题。
1. 开发环境准备与工程配置
在开始代码移植前,正确的开发环境配置可以避免很多后续麻烦。我推荐使用Keil MDK作为开发环境,因为它对这三种芯片都有较好的支持。
1.1 设备包安装
首先需要安装各厂商的设备支持包:
- STM32F103:ST官方提供的STM32F1xx_DFP
- Air32F103:合宙提供的Air32F1xx_DFP
- CH32F203:沁恒提供的CH32F20x_DFP
注意:CH32F203的设备包需要从沁恒官网下载最新版本,早期的版本可能存在寄存器定义不全的问题。
1.2 工程配置调整
在Options for Target对话框中,需要检查以下关键配置项:
| 配置项 | STM32F103典型值 | Air32F103调整点 | CH32F203调整点 |
|---|---|---|---|
| Device | STM32F103C8 | Air32F103C8 | CH32F203C8 |
| Flash Algorithm | STM32F10x 64K | Air32F10x 64K | CH32F20x 64K |
| IRAM1 Size | 0x5000 | 0x5000 | 0x6000 |
| Xtal Frequency | 8MHz | 8MHz | 8MHz |
2. 时钟系统配置差异与解决方案
时钟配置是移植过程中最容易出问题的部分,三种芯片虽然都基于Cortex-M3,但时钟树设计有显著差异。
2.1 主频配置对比
先来看下各芯片支持的最高主频:
- STM32F103:72MHz
- Ai
309



被折叠的 条评论
为什么被折叠?



