将一款单片机程序移植到另一款单片机

发布时间:2024-01-15  

引言

在一些特殊情况下,如成品需要降本,原来的芯片买不到货,需要将已经做好的产品应用程序有一款单片机移植到另一款单片机。本系列文章列出从现有的 STM32F1 器件移植到 STM32F0 器件所需的步骤,旨在帮助开发工程师节省更多开发时间。


3.7 GPIO 接口

与 F1 系列相比, STM32F0 GPIO 外设内置了多个新特性,主要包括:

GPIO 映射到 AHB 总线上,可以获得更佳的性能。

I/O 引脚复用器和映射:引脚通过多路复用器连接到片上外设 / 模块,该复用器一次只允许一个外设复用功能 (AF) 连接到 I/O 引脚。这样便可确保共用同一个 I/O 引脚的外设之间不会发生冲突。

I/O 配置的方式和特性更加丰富。

F0 GPIO 外设是一项全新的设计,因此在结构、特性和寄存器方面均不同于 F1 系列中的GPIO 外设。使用 GPIO 写入 F1 系列的任何代码都需要重写后才能在 F0 系列上运行。

80133abc-0e87-11ed-ba43-dac502259ad0.png

8035a02a-0e87-11ed-ba43-dac502259ad0.png

01复用功能模式

STM32F1 系列

1、I/O 用作复用功能的配置取决于所使用的外设模式。例如, USART Tx 引脚应配置为复用功能推挽,而 USART Rx 引脚应配置为输入悬空或输入上拉。

2、为针对不同器件封装(尤其是引脚数较少的器件)优化外设 I/O 功能的数量,可以用软件将某些复用功能重新映射到其它引脚上。例如,可将 USART2_RX 引脚映射到 PA3(默认重映射)或 PD6(软件重映射)上。

STM32F0 系列

1、不论使用何种外设模式,都必须将 I/O 配置为复用功能,之后系统才能正确使用 I/O(输入或输出)。

2、I/O 引脚通过复用器连接到片上外设/模块,该复用器一次只允许一个外设的复用功能 (AF)连接到 I/O 引脚。这样便可确保共用同一个 I/O 引脚的外设之间不会发生冲突。每个 I/O引脚都有一个复用器,该复用器具有八路复用功能输入(AF0 到 AF7),可通过GPIOx_AFRL 和 GPIOx_AFRH 寄存器对这些输入进行配置:通过配置 AF0 到 AF7 可以映射外设复用功能。

3、除了这种灵活的 I/O 复用架构之外,各外设还具有映射到不同 I/O 引脚的复用功能,这可以针对不同器件封装优化外设 I/O 功能的数量。例如,可将 USART2_RX 引脚映射到PA3 或 PA15 引脚上。

4、配置过程

(1)在 GPIOx_MODER 寄存器中将所需 I/O 配置为复用功能

(2)通过 GPIOx_OTYPER、 GPIOx_PUPDR 和 GPIOx_OSPEEDER 寄存器,分别选择类型、上拉/下拉以及输出速度

(3)将 I/O 连接到 GPIOx_AFRL 或 GPIOx_AFRH 寄存器中所需的 AFx

3.8 EXTI 中断源选择

在 STM32F1 中,通过 AFIO_EXTICRx 寄存器的 EXTIx 位选择 EXTI 线源,而在 F0 系列中,通过 SYSCFG_EXTICRx 寄存器的 EXTIx 位完成这种选择。

只有 EXTICRx 寄存器的映射发生更改,而 EXTIx 位的含义则保持不变。不过,由于最后一个端口为 F,因此 EXTIx 位的值范围最大为 0b0101(在 F1 系列中,最大值为 0b0110)。

3.9 Flash 接口

下表介绍了 STM32F1 系列与 STM32F0 系列的 Flash 接口之间的区别,分组如下:

新接口,新技术

新架构

新的读保护机制,提供 3 个保护级别

因此, F0 Flash 编程过程和寄存器均不同于 F1 系列,而且写入 F1 系列 Flash 接口的任何代码都需要重写后才能在 F0 系列上运行。

80940732-0e87-11ed-ba43-dac502259ad0.png

80bed0f2-0e87-11ed-ba43-dac502259ad0.png

3.10 ADC 接口

80e4e38c-0e87-11ed-ba43-dac502259ad0.png

80f33978-0e87-11ed-ba43-dac502259ad0.png

3.11 USART 接口

相较 F1 系列而言, STM32F0 系列内置一个新的 USART 外设。其结构、特性和编程接口均经过修改,引入了全新的功能。

因此, F0 USART 编程过程和寄存器均不同于 F1 系列,因此,使用 USART 写入 F1 系列的任何代码都需要更新后才能在 F0 系列上运行。

F0 USART 提供了卓越新增特性:

允许选择独立的时钟源

具备 UART 功能并且能够从低功耗模式唤醒,

方便的波特率编程,与 APB 时钟重新编程无关。

智能卡仿真功能:T=0(支持自动重试)和 T=1

Tx/Rx 引脚配置可交换

二进制数据反向

Tx/Rx 引脚有效电平翻转

发送/接收使能确认标志

带标志的新中断源:

地址/字符匹配

块长度检测和超时检测

超时特性

Modbus 通信

禁止超时标志

出现接收错误时禁止 DMA

从停止模式唤醒

有波特率自动检测功能

RS485 模式下发出驱动器使能信号 (DE)


文章来源于:电子工程世界    原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。

我们与500+贴片厂合作,完美满足客户的定制需求。为品牌提供定制化的推广方案、专属产品特色页,多渠道推广,SEM/SEO精准营销以及与公众号的联合推广...详细>>

利用葫芦芯平台的卓越技术服务和新产品推广能力,原厂代理能轻松打入消费物联网(IOT)、信息与通信(ICT)、汽车及新能源汽车、工业自动化及工业物联网、装备及功率电子...详细>>

充分利用其强大的电子元器件采购流量,创新性地为这些物料提供了一个全新的窗口。我们的高效数字营销技术,不仅可以助你轻松识别与连接到需求方,更能够极大地提高“闲置物料”的处理能力,通过葫芦芯平台...详细>>

我们的目标很明确:构建一个全方位的半导体产业生态系统。成为一家全球领先的半导体互联网生态公司。目前,我们已成功打造了智能汽车、智能家居、大健康医疗、机器人和材料等五大生态领域。更为重要的是...详细>>

我们深知加工与定制类服务商的价值和重要性,因此,我们倾力为您提供最顶尖的营销资源。在我们的平台上,您可以直接接触到100万的研发工程师和采购工程师,以及10万的活跃客户群体...详细>>

凭借我们强大的专业流量和尖端的互联网数字营销技术,我们承诺为原厂提供免费的产品资料推广服务。无论是最新的资讯、技术动态还是创新产品,都可以通过我们的平台迅速传达给目标客户...详细>>

我们不止于将线索转化为潜在客户。葫芦芯平台致力于形成业务闭环,从引流、宣传到最终销售,全程跟进,确保每一个potential lead都得到妥善处理,从而大幅提高转化率。不仅如此...详细>>