在工业控制、电机驱动、通信接口等项目升级中,从 APM32E103 迁移到 APM32F402/F403 已成主流选择。AN1123 官方迁移指南完整覆盖硬件兼容、外设差异、中断向量、固件库替换、工具链适配全流程,照着操作即可实现代码最小改动、性能大幅提升,轻松完成平台升级。
资料获取:AN1123_APM32F402_403迁移指南应用笔记
1. 迁移核心优势:为什么要升级?
- 内核升级:Cortex‑M3 → Cortex‑M4F,内置FPU 浮点单元,运算性能显著提升
- 主频不变:保持120MHz,原有时序逻辑无需大改
- 启动方式兼容:BOOT [1:0] 配置与 E103 完全一致
- Bootloader 增强:支持USART/I2C/SPI/CAN/OTG FS五口下载,升级更灵活
- 新增 FMC 加速器:代码执行速度更快,等待周期更合理
- USB 升级:从 Device 仅从机 → OTG FS 主从一体,扩展性更强
2. 硬件与资源差异(直接对照)
2.1 核心资源对比
| 参数 | APM32F402/403 | APM32E103 | 影响 |
|---|---|---|---|
| 内核 | Cortex‑M4F+FPU | Cortex‑M3 | 浮点运算加速 |
| Flash | 128KB | 512KB | 代码需精简 |
| SRAM | 32KB | 128KB | 缓存、堆栈调整 |
| GPIO | 51 | 51 | 完全兼容 |
| ADC | 2×16 通道 | 3×16 通道 | 通道重分配 |
| DAC | 无 | 2 路 | 需改用 PWM 或外置 |
| USB | OTG FS(主 + 从) | USBD(仅从) | 驱动重写 |
| I2C | 1 路 | 2 路 | 引脚切换 |
| SPI/I2S | 2/1 | 3/2 | 资源调整 |
| CAN | 2 路 | 2 路 | 兼容 |
2.2 关键删减外设(必须处理)
- DAC 模块移除:原有 DAC 输出代码需移除
- ADC3 移除:仅保留 ADC1/ADC2
- SDIO、SPI3、UART5 移除
- I2C2、I2C3 移除,仅保留 I2C1
2.3 新增增强外设
- FPU 浮点单元:支持浮点运算加速
- OTG FS:支持 USB 主机 / 设备模式
- FMC 指令缓存:提升代码执行效率
- 定时器增强:新增 32 位通用定时器
3. 中断向量表差异(迁移必改)
F402/403 中断数66 个,E103 为65 个,关键差异:
- USB 相关中断:OTG_FS_WKUP(42)、OTG_FS(65)
- 新增FPU 中断 (60)
- 移除 USBD、ADC3、SDIO、EMMC 等中断
- CAN2 中断位置不变
⚠️ 务必更换F402/403 专用启动文件,中断函数名称需对应修正。
4. 固件库迁移:函数替换清单
4.1 CAN 模块差异
- F402/403:
CAN_ConfigFilter(filterConfig) - E103:
CAN_ConfigFilter(can, filterConfig) - 新增:
CAN_SlaveStartBank(bankNum)
4.2 FMC 闪存模块(新增加速函数)
FMC_EnableInstructionCache();
FMC_EnableDataCache();
FMC_EnablePrefetch();
4.3 定时器参数加宽
- 计数器、重装载值、比较值:uint16_t → uint32_t
- 函数:
TMR_ConfigCounter、TMR_ConfigAutoreload等
4.4 USB 驱动完全重构
- 从 USBD 驱动 → 替换为OTG FS 主机 + 从机驱动
- 中断向量、初始化流程、端点配置全部重写
5. 5 步快速迁移流程
5.1 工程替换
- 更换为APM32F402/403 标准库
- 启动文件替换:
startup_apm32f402xx.s - 宏定义更换:
APM32E103XX → APM32F402XX
5.2 外设裁剪
- 删除 DAC、ADC3、SDIO、SPI3、UART5、I2C2/I2C3 相关代码
- USB 代码全部移除,改用 OTG FS 例程重写
5.3 中断与启动文件更新
- 对照中断表修正中断服务函数名
- 确保所有中断函数与 F402/403 匹配
5.4 函数与参数修正
- CAN 滤波器函数参数删减
- 定时器变量类型改为 uint32_t
- 使能 FPU 与 FMC 加速,提升性能
5.5 内存与时钟调整
- 调整堆栈大小,适配 32KB SRAM
- 时钟树基本兼容,使能 FPUCLK
- Flash 等待周期按 120MHz 重新配置
6. 最常见问题速解
- 程序不运行:启动文件错误或中断向量不匹配
- 浮点运算异常:未使能 FPU,或编译器未开启 FPU 选项
- CAN 无法通信:滤波器配置函数参数错误
- USB 无法枚举:仍使用旧 USBD 驱动,需改用 OTG 驱动
- 定时器精度异常:未将 uint16_t 改为 uint32_t
- 内存溢出:SRAM 仅 32KB,需优化缓存与堆栈
AN1123 是APM32E103 迁移 F402/F403 的官方标准手册,迁移核心在于:外设裁剪 + 中断修正 + 库函数替换 + USB 重构。虽然 Flash 与 SRAM 缩小,但M4F+FPU+OTG + 加速器带来的性能与功能提升,完全满足高端项目需求。按本文步骤操作,普通项目1‑2 天即可完成迁移,稳定可靠、性价比极高。
阅读全文
259