引言
在一些特殊情況下,如成品需要降本,原來的芯片買不到貨,需要將已經做好的產品應用程序有一款單片機移植到另一款單片機。本系列文章列出從現有的 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 系列上運行。
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 系列上運行。
3.10 ADC 接口
3.11 USART 接口
相較 F1 系列而言, STM32F0 系列內置一個新的 USART 外設。其結構、特性和編程接口均經過修改,引入了全新的功能。
因此, F0 USART 編程過程和寄存器均不同于 F1 系列,因此,使用 USART 寫入 F1 系列的任何代碼都需要更新后才能在 F0 系列上運行。
F0 USART 提供了卓越新增特性:
允許選擇獨立的時鐘源
具備 UART 功能并且能夠從低功耗模式喚醒,
方便的波特率編程,與 APB 時鐘重新編程無關。
Tx/Rx 引腳配置可交換
二進制數據反向
Tx/Rx 引腳有效電平翻轉
發送/接收使能確認標志
帶標志的新中斷源:
地址/字符匹配
塊長度檢測和超時檢測
超時特性
Modbus 通信
禁止超時標志
出現接收錯誤時禁止 DMA
從停止模式喚醒
有波特率自動檢測功能
審核編輯:湯梓紅
評論
查看更多