【专栏】从STM32F1移植到STM32F0——3外设移植
来源:玩转单片机与嵌入式发布时间:2022-07-213817浏览
询问 AI0:引言
在一些特殊情况下,如成品需要降本,原来的芯片买不到货,需要将已经做好的产品应用程序有一款单片机移植到另一款单片机。本系列文章列出从现有的 STM32F1 器件移植到 STM32F0 器件所需的步骤,旨在帮助开发工程师节省更多开发时间。
3.2 系统架构
STM32F0 MCU 系列具有低功耗和操作简单的特点,主要面向入门级市场。为实现这一目的并保留 STM32 特有的先进高端特性,这一系列产品的内核已更换为 Cortex-M0。F0 系列产品的硅片面积小并且代码量极少,能够在低成本应用中实现 32 位的高性能。 下图介绍了 M3 M0 指令集之间的对应关系。为了避免用到无法使用的特性,从 F1 移植到 F0 时需要重新编译代码 。

MCU 的结构也做出了重大修改,从哈佛结构切换为冯 ⋅ 诺依曼结构,这降低了系统复杂性,也就是说,更注重软件调试而降低了系统的精密程度。
3.3 存储器映射
相较 F1 系列而言, F0 系列中的外设地址映射已发生变化。主要变化体现在 GPIO 已从 APB线转移到 AHB 总线,这样这些 GPIO 便可在最大速度下工作。




3.4 复位和时钟控制器 (RCC) 接口
下表介绍了 STM32F0 系列与 STM32F1 系列的 RCC(复位和时钟控制器)的主要区别。


从 F1 系列移植到 F0 系列时,只需更新系统时钟配置代码中的几项设置;主要是 Flash 设置(配置适合系统频率的正确等待周期、使能/禁止预取)和/或 PLL 参数配置:
(2)当 PLL(由 HSE 或 HSI 提供时钟)用作系统时钟源时,需要更新 Flash 参数和 PLL配置。
如下列出了一个将系统时钟配置从 F1 移植到 F0 的示例:
1、STM32F100x 超值型运行在最高性能下:系统时钟为 24 MHz(由 HSE (8 MHz)驱动的 PLL 用作系统时钟源), Flash 等待周期为 0 且已使能 Flash 预取队列。

相对 F1 系列而言,由于 F0 系列中的某些外设地址映射已发生更改,因此用户需要使用不同的寄存器来 [使能/禁止] 外设 [时钟] 或使外设 [进入/退出] [复位模式]。

要配置对指定外设的访问,用户首先应了解与该外设相连的总线;请参见表 5,然后根据所需操作对上面表8中介绍的相应寄存器进行编程。例如,如果USART1连接到APB2总线,则需要按照如下方式配置APB2ENR寄存器才能使能USART1时钟:
RCC->APB2ENR |= RCC_APB2ENR_USART1EN;新闻来源:玩转单片机与嵌入式,文中所述为作者独立观点,不代表icspec立场。更多精彩资讯请下载icspec App。如对本稿件有异议,请联系微信客服specltkj。


