「必看干貨」淺談GD32與STM32之間的區(qū)別
一.硬件設(shè)計
以我們常用的STM32與gd32單片機(jī)為例,做一下對比。
比較GD32E230C8(M0),GD32F103C8(M3),GD32F303CG(M4),STM32F103C8(M3),STM32F303C8T6(M4)硬件管腳的區(qū)別。
從上圖中可以看出:
GD32E230C8(M0)與STM32G030C8(M0)管腳不兼容;
GD32F103C8(M3)與STM32F103C8(M3)管腳兼容;
GD32F303CG(M4)與STM32F303C8T6(M4)管腳兼容。
GD32E230C8(M0),GD32F103C8(M3),GD32F303CG(M4)有兩個引腳(35腳和36腳)硬件電氣不兼容,可以加電阻,用于切換,實現(xiàn)PCB板兼容。
下表是GD32E230C8單片機(jī)35和36管腳定義:
下表是GD32F103C8(M3)單片機(jī)35和36管腳定義:
*可以看出這兩個管腳不兼容,若想實現(xiàn)PCB管腳兼容,可以加電阻。
下圖是GD32E230C8單片機(jī)原理圖:
從上圖可以看出,在35和36腳加了3個電阻,2個上拉電阻和1個下拉電阻。
當(dāng)使用GD32E230C8T6單片機(jī)時,35腳和36腳默認(rèn)是普通IO口,可以按照上圖所示連接電阻。
當(dāng)使用GD32F103C8單片機(jī)時,35腳和36腳是電源口,此時可以把R6換成0歐姆的電阻,R7不焊接,R8焊接0歐姆的電阻。
二.設(shè)計中的不同點
1.工作電壓不同:STM32的工作電壓在2.0~ 3.6V或1.65~3.6V,GD32F的工作電壓在 2.6~3.6V,工作范圍相對要窄。
電壓范圍不同: GD32F: 2.6-3.6V STM32F: 2.0-3.6V(外部電壓) GD32F: 1.2V(內(nèi)核電壓)STM32F: 1.8V(內(nèi)核電壓)
GD32的內(nèi)核電壓比STM32的內(nèi)核電壓要低,所以GD32的芯片在運行的時候運行功耗更低。
2.GD32F303/F103主頻比STM32F103主頻要高,GD32F10 系列主頻: 108MHZ , STM32F10 系列主頻 :72MHZ 。
3.啟動時間:GD32 啟動時間相同,由于 GD32 運行稍快,需要延長上電時間 ,配置(2ms) 。
4.GD32提高了相同工作頻率下的代碼執(zhí)行速度,所以GD32的_NOP()時間比STM32更加短,所以不使用定時器做延時時要注意修改。
5.GD32的flash擦除時間要比STM32更長。
Flash 擦除時間: GD32 是 60ms/page,STM32 30ms/page
6.功耗上GD32的靜態(tài)功耗要相對高一點
功耗區(qū)別(以128k以下容量的作為參考)
a: 睡眠模式 Sleep:GD32F: 12.4mA STM32F10X: 7.5mA
b:深度睡眠模式 Deep Sleep: GD32F: 1.4mA STM32F10X: 24uA
c:待機(jī)模式 Stand By: GD32F: 10.5uA STM32F10X: 3.4uA
d:運行功耗: GD32F: 32.4mA/72M STM32F10X: 52mA/72M
7.GD32的BOOT0必須接10K下拉或接GND,ST可懸空。
BOOT0 管腳: Flash 程序運行時,BOOT0 在 STM32 上可懸空,GD32 必須外部下拉(從 Flash 運行,BOOT0 必須下拉地)。
8.RC復(fù)位電路必須要有,否則MCU可能不能正常工作,STM32有時候可以不要。
9.GD32的SWD接口驅(qū)動能力比STM32弱,可以有如下幾種方式解決:
a:線盡可能短一些;
b:降低SWD通訊速率;
c: SWDIO接10k上拉,SWCLK接10k下拉。
10.GD32對時序要求嚴(yán)格,配置外設(shè)需要先打開時鐘,否則可能導(dǎo)致外設(shè)無法配置成功;STM32的可以先配置再開時鐘。
11.修改外部晶振起振超時時間,不用外部晶振可跳過這步。
原因:GD32與STM32的啟動時間存在差異,為了讓GD32 MCU更準(zhǔn)確復(fù)位(不修改可能無法復(fù)位)。
12.串口通信不同點: GD32在連續(xù)發(fā)送數(shù)據(jù)的時候每兩個字節(jié)之間會有一個Bit的Idle,而STM32沒有。
GD32的串口在發(fā)送的時候停止位只有1/2兩種停止位模式。STM32有0.5/1/1.5/2四種停止位模式。
13.ADC不同點: GD32的輸入阻抗和采樣時間的設(shè)置和STM32有一定差異,相同配置GD32采樣的輸入阻抗相對來說要小。
14.FSMC不同點: STM32只有100Pin以上的大容量(256K及以上)才有FSMC,GD32所有的100Pin或100Pin以上的都有FSMC。
理論不及實踐,推薦一個平臺,大家可以DIY智能硬件
一.硬件設(shè)計
以我們常用的STM32與gd32單片機(jī)為例,做一下對比。
比較GD32E230C8(M0),GD32F103C8(M3),GD32F303CG(M4),STM32F103C8(M3),STM32F303C8T6(M4)硬件管腳的區(qū)別。
從上圖中可以看出:
GD32E230C8(M0)與STM32G030C8(M0)管腳不兼容;
GD32F103C8(M3)與STM32F103C8(M3)管腳兼容;
GD32F303CG(M4)與STM32F303C8T6(M4)管腳兼容。
GD32E230C8(M0),GD32F103C8(M3),GD32F303CG(M4)有兩個引腳(35腳和36腳)硬件電氣不兼容,可以加電阻,用于切換,實現(xiàn)PCB板兼容。
下表是GD32E230C8單片機(jī)35和36管腳定義:
下表是GD32F103C8(M3)單片機(jī)35和36管腳定義:
*可以看出這兩個管腳不兼容,若想實現(xiàn)PCB管腳兼容,可以加電阻。
下圖是GD32E230C8單片機(jī)原理圖:
從上圖可以看出,在35和36腳加了3個電阻,2個上拉電阻和1個下拉電阻。
當(dāng)使用GD32E230C8T6單片機(jī)時,35腳和36腳默認(rèn)是普通IO口,可以按照上圖所示連接電阻。
當(dāng)使用GD32F103C8單片機(jī)時,35腳和36腳是電源口,此時可以把R6換成0歐姆的電阻,R7不焊接,R8焊接0歐姆的電阻。
二.設(shè)計中的不同點
1.工作電壓不同:STM32的工作電壓在2.0~ 3.6V或1.65~3.6V,GD32F的工作電壓在 2.6~3.6V,工作范圍相對要窄。
電壓范圍不同: GD32F: 2.6-3.6V STM32F: 2.0-3.6V(外部電壓) GD32F: 1.2V(內(nèi)核電壓)STM32F: 1.8V(內(nèi)核電壓)
GD32的內(nèi)核電壓比STM32的內(nèi)核電壓要低,所以GD32的芯片在運行的時候運行功耗更低。
2.GD32F303/F103主頻比STM32F103主頻要高,GD32F10 系列主頻: 108MHZ , STM32F10 系列主頻 :72MHZ 。
3.啟動時間:GD32 啟動時間相同,由于 GD32 運行稍快,需要延長上電時間 ,配置(2ms) 。
4.GD32提高了相同工作頻率下的代碼執(zhí)行速度,所以GD32的_NOP()時間比STM32更加短,所以不使用定時器做延時時要注意修改。
5.GD32的flash擦除時間要比STM32更長。
Flash 擦除時間: GD32 是 60ms/page,STM32 30ms/page
6.功耗上GD32的靜態(tài)功耗要相對高一點
功耗區(qū)別(以128k以下容量的作為參考)
a: 睡眠模式 Sleep:GD32F: 12.4mA STM32F10X: 7.5mA
b:深度睡眠模式 Deep Sleep: GD32F: 1.4mA STM32F10X: 24uA
c:待機(jī)模式 Stand By: GD32F: 10.5uA STM32F10X: 3.4uA
d:運行功耗: GD32F: 32.4mA/72M STM32F10X: 52mA/72M
7.GD32的BOOT0必須接10K下拉或接GND,ST可懸空。
BOOT0 管腳: Flash 程序運行時,BOOT0 在 STM32 上可懸空,GD32 必須外部下拉(從 Flash 運行,BOOT0 必須下拉地)。
8.RC復(fù)位電路必須要有,否則MCU可能不能正常工作,STM32有時候可以不要。
9.GD32的SWD接口驅(qū)動能力比STM32弱,可以有如下幾種方式解決:
a:線盡可能短一些;
b:降低SWD通訊速率;
c: SWDIO接10k上拉,SWCLK接10k下拉。
10.GD32對時序要求嚴(yán)格,配置外設(shè)需要先打開時鐘,否則可能導(dǎo)致外設(shè)無法配置成功;STM32的可以先配置再開時鐘。
11.修改外部晶振起振超時時間,不用外部晶振可跳過這步。
原因:GD32與STM32的啟動時間存在差異,為了讓GD32 MCU更準(zhǔn)確復(fù)位(不修改可能無法復(fù)位)。
12.串口通信不同點: GD32在連續(xù)發(fā)送數(shù)據(jù)的時候每兩個字節(jié)之間會有一個Bit的Idle,而STM32沒有。
GD32的串口在發(fā)送的時候停止位只有1/2兩種停止位模式。STM32有0.5/1/1.5/2四種停止位模式。
13.ADC不同點: GD32的輸入阻抗和采樣時間的設(shè)置和STM32有一定差異,相同配置GD32采樣的輸入阻抗相對來說要小。
14.FSMC不同點: STM32只有100Pin以上的大容量(256K及以上)才有FSMC,GD32所有的100Pin或100Pin以上的都有FSMC。
理論不及實踐,推薦一個平臺,大家可以DIY智能硬件
https://auth.tuya.com/?_source=7c8653b7bd61bf9239a1a6c12e52124d
*博客內(nèi)容為網(wǎng)友個人發(fā)布,僅代表博主個人觀點,如有侵權(quán)請聯(lián)系工作人員刪除。