前言
对于 STM32 微控制器应用的设计人员来说,能够轻松地用同一产品系列中的微控制器替换
另一个型号是非常重要的。常常需要将应用移植到不同的处理器上,比如当产品要求增加
时,需要在存储器上增加额外的指令或者增加 I/O 的数量。另外一方面,成本降低目标也可
能会是转向更小的元件和缩小 PCB 面积的依据。
本应用笔记帮助分析将现有设计从 STM32L1 系列产品移植到 STM32L4 系列产品所需的步
骤。它汇集了最重要的信息,并且列出了需要处理的关键方面。
本文档列出了 STM32L1 和 STM32L4 系列产品可用的 “ 全套 ” 功能 (根据其产品型号,一
些产品可能具有较少的功能)。
为了将应用从 STM32L1 系列产品移植到 STM32L4 系列产品,需要考虑三个方面:硬件移
植,外设移植和固件移植。
为了充分利用本应用笔记中的信息,用户应当熟悉 STM32 微控制器文档 (可在
www.st.com 上获取),并特别关注:
STM32L1 系列:
• STM32L1xx 参考手册 (RM0038)
• STM32L1xx 数据手册
• STM32L1 Flash 和 EEPROM 程序设计手册 (PM0062)。
STM32L4 系列:
• STM32L4x6 参考手册 (RM0351)
• STM32L4xx 数据手册
目录
1 STM32L4 系列概览 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2 硬件移植 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
3 自举模式选择 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
4 外设移植 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
4.1 STM32 产品交叉兼容性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
4.2 存储器映射 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
4.3 DMA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
4.4 中断 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
4.5 RCC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
4.5.1 VCORE 范围内的性能 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
4.5.2 外设访问配置 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
4.5.3 外设时钟配置 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
4.6 PWR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
4.7 RTC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
4.8 SYSCFG 和 RI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
4.9 GPIO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
4.10 EXTI 源选择 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
4.11 闪存 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
4.12 U(S)ART . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
4.13 I2C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
4.14 SPI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
4.15 CRC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
4.16 AES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
4.17 LCD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
4.18 USB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
4.19 ADC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
4.20 DAC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
4.21 COMP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
4.22 OPAMP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
5 修订历史 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
表格索引
表 1. 适用产品 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
表 2. STM32L1 系列和 STM32L4 系列的引脚分配区别 (QFP) . . . . . . . . . . . . . . . . . . . . . . . . . 7
表 3. STM32L1 系列和 STM32L4 系列的引脚分配区别 (BGA) . . . . . . . . . . . . . . . . . . . . . . . . . 7
表 4. 自举模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
表 5. 自举程序接口 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
表 6. STM32L1 系列与 STM32L4 系列的外设兼容性分析 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
表 7. STM32L1 系列和 STM32L4 系列之间的外设地址映射区别 . . . . . . . . . . . . . . . . . . . . . . . . 15
表 8. 从 STM32L1 系列移植到 STM32L4 系列的 DMA 请求区别 . . . . . . . . . . . . . . . . . . . . . . . . 19
表 9. STM32L1 系列和 STM32L4 系列之间的中断向量区别 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
表 10. STM32L1 和 STM32L4 系列之间的 RCC 区别 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
表 11. VCORE 范围内的性能. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
表 12. 用于外设访问配置的 RCC 寄存器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
表 13. STM32L1 系列和 STM32L4 系列之间的 PWR 区别 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
表 14. STM32L1 系列和 STM32L4 系列之间的 RTC 区别. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
表 15. STM32L1 系列和 STM32L4 系列之间的 SYSCFG 区别 . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
表 16. STM32L1 系列和 STM32L4 系列之间的 EXTI 区别 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
表 17. STM32L1 系列和 STM32L4 系列之间的 FLASH 区别. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
表 18. STM32L1 系列和 STM32L4 系列之间的 U(S)ART 区别 . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
表 19. STM32L1 系列和 STM32L4 系列之间的 I2C 区别. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
表 20. STM32L1 系列和 STM32L4 系列之间的 SPI 区别 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
表 21. 从 I2S 移植到 SAI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
表 22. STM32L1 系列和 STM32L4 系列之间的 CRC 区别 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
表 23. STM32L1 系列和 STM32L4 系列之间的 AES 区别 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
表 24. STM32L1 系列和 STM32L4 系列之间的 USB 区别. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
表 25. STM32L1 系列和 STM32L4 系列之间的 ADC 区别. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
表 26. STM32L1 系列和 STM32L4 系列之间的 DAC 区别. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
表 27. STM32L1 系列和 STM32L4 系列之间的 COMP 区别 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
表 28. STM32L1 系列和 STM32L4 系列之间的 OPAMP 区别 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
表 29. 文档修订历史 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
表 30. 中文文档修订历史 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
--------------------------------------