娇小w搡bbbb搡bbb,《第一次の人妻》,中国成熟妇女毛茸茸,边啃奶头边躁狠狠躁视频免费观看

GD32如何替換STM32?

發布者:JoyfulHarmony最新更新時間:2024-07-17 來源: elecfans關鍵字:GD32  替換  STM32 手機看文章 掃描二維碼
隨時隨地手機看文章

wKgaomUD6zaAZ87aAADiuLXSDns811.png

GD32F103是GD早期的產品,GD32E103和GD32F303是對GD32F103的升級和優化,所以4者是兼容的,雖然內核不同,但是通用外設幾乎很少涉及到內核部分,在時間急迫的情況下可以使用ST的庫開發。


一、相同點

1)外圍引腳PIN TO PIN兼容,每個引腳上的復用功能也完全相同。

2)芯片內部寄存器、外部IP寄存器地址和邏輯地址完全相同,但是有些寄存器默認值不同,有些外設模塊的設計時序上和STM32有差異,這點差異主要體現在軟件上修改,詳情見下文。

3)編譯工具:完全相同例如:KEIL 、IAR

4)型號命名方式完全相同,所以替代只需找尾綴相同的型號即可,例如:STM32F103C8T6 與 GD32E103C8T6。

5)仿真工具:JLINK GDLINK

二、外圍硬件區別

wKgaomUD6zeAHIjAAAHk_oAV0cg459.png

三、硬件替換需要注意的地方

從上面的介紹中,我們可以看出,GD32F30/E103系列和STM32F103系列是兼容的,但也需要一些注意的地方。

1)BOOT0必須接10K下拉或接GND,ST可懸空,這點很重要。

2)RC復位電路必須要有,否則MCU可能不能正常工作,ST的有時候可以不要。

3)有時候發現用仿真器連接不上。因為GD的swd接口驅動能力比ST弱,可以有如下幾種方式解決:

a、線盡可能短一些;

b、降低SWD通訊速率;

c、SWDIO接10k上拉,SWCLK接10k下拉。

4)使用電池供電等,注意GD的工作電壓,例如跌落到2.0V~2.6V區間,ST還能工作,GD可能無法啟動或工作異常。

四、使用ST標準庫開發需要修改的地方

1)GD對時序要求嚴格,配置外設需要先打開時鐘,在進行外設配置,否則可能導致外設無法配置成功;ST的可以先配置在開時鐘。

2)修改外部晶振起振超時時間,不用外部晶振可跳過這步。

原因:GD與ST的啟動時間存在差異,為了讓GD MCU更準確復位。

修改:

將宏定義:


#define HSE_STARTUP_TIMEOUT ((uint16_t)0x0500)


修改為:


#define HSE_STARTUP_TIMEOUT ((uint16_t)0xFFFF)


3)GD32F10X flash取值零等待,而ST需要2個等待周期,因此,一些精確延時或者模擬IIC或SPI的代碼可能需要修改。

原因:GD32采用專利技術提高了相同工作頻率下的代碼執行速度。

修改:如果使用for或while循環做精確定時的,定時會由于代碼執行速度加快而使循環的時間變短,因此需要仿真重新計算設計延時。使用Timer定時器無影響。

4)在代碼中設置讀保護,如果使用外部工具讀保護比如JFLASH或脫機燒錄器設置,可跳過此步驟。
在寫完KEY序列后,需要讀該位確認key已生效,修改如下:

wKgZomUD6zqASPP_AAAuWkOnwZ0800.png

總共需要修改如下四個函數:


FLASH_Status FLASH_EraseOptionBytes(void);
FLASH_Status FLASH_ProgramOptionByteData(uint32_t Address, uint8_t Data);
uint32_t FLASH_GetWriteProtectionOptionByte(void);
FlagStatus FLASH_GetReadOutProtectionStatus(void);


5)GD與ST在flash的Erase和Program時間上有差異,修改如下:

wKgZomUD6zuAIBoqAABJOKKvhfg340.png

6)需求flash大于256K注意,小于256K可以忽略這項。

與ST不同,GD的flash存在分區的概念,前256K,CPU執行指令零等待,稱code區,此范圍外稱為dataZ區。兩者在擦寫操作上沒有區別,但在讀操作時間上存在較大差別,code區代碼取值零等待,data區執行代碼有較大延遲,代碼執行效率比code區慢一個數量級,因此data區通常不建議運行對實時性要求高的代碼,為解決這個問題,可以使用分散加載的方法,比如把初始化代碼,圖片代碼等放到data區。

總結:至此,經過以上修改,在不使用USB和網絡能復雜協議的代碼,就可以使用ST的代碼操作了。


關鍵字:GD32  替換  STM32 引用地址:GD32如何替換STM32?

上一篇:STM32的外部中斷
下一篇:STM32輸出PWM

推薦閱讀最新更新時間:2025-04-17 22:44

stm32固件庫之讀取按鍵
//按鍵接下拉4.7k 上升沿中斷.按鍵上并聯104電容抗抖動 //引腳定義 /*******************************************************/ define KEY1_PIN GPIO_Pin_0 define KEY1_GPIO_PORT GPIOA define KEY1_GPIO_CLK RCC_AHB1Periph_GPIOA define KEY2_PIN GPIO_Pin_13 define KEY2_GPIO_PORT GPIOC define KEY2_GPIO_CLK RCC_AHB1Pe
[單片機]
STM32 MPU是什么產品?了解嵌入式系統中微處理器的新變化
微控制器 (MCU)和微處理器(MPU)有哪些不同之處?簡單來說,兩者都是嵌入式系統的大腦。幾年前,兩者之間有非常明顯的區別,功能截然不同,對開發者的研發技能要求也大不相同。如今,這兩個術語仍然存在,但創新使得兩者之間的分界線日趨模糊。以前只用 MCU 的系統集成商現在發現,用MPU更容易,ST也注意到了這一點。微處理器已經成為某些開發者手中的秘密武器,借助其原生的功能或運行嵌入式 Linux 的能力,他們能夠開發新的應用或進入新的市場。因此,讓我們一起深入研究一下這個新趨勢。 故事的開頭 MCU的出現是替代 MPU 當業界在上個世紀七十年代推出首個微控制器時,人們希望找到一種替代耗電量太大且設計復雜的 MPU
[單片機]
<font color='red'>STM32</font> MPU是什么產品?了解嵌入式系統中微處理器的新變化
STM32讓printf通過串口打印及自定義printf函數
在嵌入式系統中,通過串口打印log是非常重要的調試手段,但是直接調用底層驅動打印信息非常不方便,在c語言中一般使用printf打印基本的顯示信息,而默認printf的結果不會通過串口發送,所以需要對printf的輸出進行重定向。 有時候需要同時從多個串口輸出信息,如果仍然想通過printf函數輸出信息,就需要自己寫printf的實現。 一. 初始化端口和配置 對串口用到的GPIO進行配置,并對串口的參數進行初始化。 二. 宏定義并實現具體的發送函數 代碼在編譯時首先判斷__GNUC__有無定義,之后將PUTCHAR_PROTOTYPE替換成具體的定義。在keil5中,使用fputc函數,所以其實
[單片機]
<font color='red'>STM32</font>讓printf通過串口打印及自定義printf函數
STM32萬年歷時鐘調試經驗(時間精度問題,斷電RTC不持續運行)
最初調試STM32的萬年歷,使用的是內部的 LSI晶振作為RTC晶振來源,發現有兩個問題: 第一:由于LSI晶振頻率大約在40KHZ附近,實際上會在30~60KHZ之間波動,導致計時不準,基本上一個小時會有1分鐘左右的偏差。 第二: 由于LSI內部晶振,在斷電的時候,并不在后備供電區域范圍內,而外接的3.3V電池連接到VBAT上,只給后備供電區域供電,導致系統斷電后,電池只能維持后備RTC的計數,并沒有給LSI晶振供電(見下圖所示:),導致RTC總是保持在斷電之前的時間。雖然重新上電后又可以繼續運行。但是需要重新校準了 。 最后使用了外界的32.768KHZ的外部LSE晶振作為RTC晶振來源,調試過程中發現,反復修改,問題
[單片機]
<font color='red'>STM32</font>萬年歷時鐘調試經驗(時間精度問題,斷電RTC不持續運行)
STM32 啟動步驟和升級方式以及代碼跳轉的實現
#!/bin/sh #首先把BOOT0/Boot1 設置為 1 0, 即使用 STM32的ISP升級模式 #按下板子的reset, 硬復位進入 SYS ISP 模式(BOOTLOADER) #sudo stm32flash -w F407ZG_New.bin -v -g 0x0 /dev/ttyUSB0 sudo stm32flash -w F407ZG_Old.bin -v -g 0x0 /dev/ttyUSB0 #燒寫以及驗證完畢后, 自動加載 Flash的程序運行。 #把把BOOT0/Boot1 設置為 0 0, 即使用 STM32的flash模式,即用戶程序模式。 #reset按鍵, 硬復位后自動啟動新燒入的程
[單片機]
STM32 UART/USART 的差別
stm32中 uart 是比較常用的, 在使用 HAL時發現了 uart / usart, 原來用一直都沒有太注意, 現在有閑時整理一下. 1、UART:universal asynchronous receiver and transmitter通用異步收發器, 僅需要 RX / TX 接口. 2、USART:universal synchronous asynchronous receiver and transmitter通用同步異步收發器, 除了 TX/RX 之外, 還額外需要一個 CLK 的 PIN 腳. 也就是說:UART的一般只能用于異步串行通訊,而名稱為USART的既可以用于同步串行通訊,也能用于異步串行通訊。 在
[單片機]
基于STM32的智能飲水機系統設計
一、項目背景 隨著智能化的迅速發展,人們對于生活中的各類設備也越來越有智能化的需求,其中智能飲水機是一種比較常見的設備。智能飲水機不僅可以提供飲用水,還可以通過智能化的技術滿足人們對于水質、水溫、出水量等方面的需求。因此,當前設計了一種基于STM32的智能飲水機系統,以滿足人們對智能化飲水機的需求。 智能飲水機系統其主要功能包括: 【1】控制加熱芯片:通過繼電器模塊控制加熱芯片,在水燒開后自動斷電。 【2】液位感應:使用液位傳感器感應水箱水位,當水位過低時通過語音模塊進行播報提示。 【3】移動端控制:Android手機端可以顯示當前雙水箱內的水溫,設置出水溫度及出水量,并且還可以控制出水操作。 【4】主控芯片:采用STM32F
[單片機]
基于<font color='red'>STM32</font>的智能飲水機系統設計
LCD1602引腳介紹及STM32單片機驅動LCD1602程序
  LCD1602是一種工業字符型液晶,能夠同時顯示16x02即32個字符。LCD1602液晶顯示原理 LCD1602液晶顯示的原理是利用液晶的物理特性,通過電壓對其顯示區域進行控制,有電就有顯示,這樣即可以顯示出圖形。   LCD1602特性:   3.3V或5V工作電壓,對比度可調   內含復位電路提供各種控制命令,如:清屏、字符閃爍、光標閃爍、顯示移位等多種功能   有80字節顯示數據存儲器DDRAM   內建有192個5X7點陣的字型的字符發生器CGROM   8個可由用戶自定義的5X7的字符發生器CGRAM   LCD1602引腳功能:   字符型LCD1602通常有14條引腳線或16條引腳線的LCD,多出來的2條線
[單片機]
LCD1602引腳介紹及<font color='red'>STM32</font>單片機驅動LCD1602程序
小廣播
設計資源 培訓 開發板 精華推薦

最新單片機文章
何立民專欄 單片機及嵌入式寶典

北京航空航天大學教授,20余年來致力于單片機與嵌入式系統推廣工作。

 
EEWorld訂閱號

 
EEWorld服務號

 
汽車開發圈

 
機器人開發圈

電子工程世界版權所有 京ICP證060456號 京ICP備10001474號-1 電信業務審批[2006]字第258號函 京公網安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
主站蜘蛛池模板: 沙湾县| 梅州市| 横山县| 眉山市| 巫山县| 土默特右旗| 潞城市| 都兰县| 光泽县| 昭苏县| 湘潭市| 铁力市| 汉川市| 东乌珠穆沁旗| 城口县| 晋州市| 灌阳县| 文安县| 苍梧县| 息烽县| 酉阳| 射阳县| 邓州市| 乾安县| 望城县| 博乐市| 万荣县| 即墨市| 来凤县| 西畴县| 叶城县| 琼中| 大埔区| 凌源市| 横峰县| 静宁县| 武威市| 武宣县| 丁青县| 大竹县| 昭觉县|