月黑風(fēng)高夜,我把室友的STM32換成了GD32……
一、什么是GD32
GD32是由北京兆易創(chuàng)新開(kāi)發(fā)的國(guó)產(chǎn)32位MCU,基于Arm Cortex- M3/M23/M4內(nèi)核以及RISC-V內(nèi)核的32位通用微控制器。與STM32相比,CPU主頻更高,內(nèi)存更多,外設(shè)更豐富。其眾多產(chǎn)品是以STM32芯片為模板,基于STM32的底層寄存器地址進(jìn)行正向研發(fā),部分產(chǎn)品可以直接PIN TO PIN替代STM32的芯片,部分型號(hào)可以直接以STM32的程序做部分修改后直接燒入進(jìn)GD32中運(yùn)行。例如:GD32E103、GD32F10x、GD32F30x都是和STM32F10x系列是完全PIN TO PIN兼容的,內(nèi)部地址寄存器完全兼容,唯一區(qū)別只是內(nèi)核不同,但在使用外設(shè)時(shí)影響不會(huì)很大。一個(gè)大膽的想法從我腦海中誕生,我要貍貓換太子,GD32F103ZET6替換掉STM32F103ZET6。入夜,趁著室友入睡后,悄悄的拿走室友的STM32開(kāi)發(fā)板,點(diǎn)起我的小臺(tái)燈。掏出了我沉寂許久的GD32F103ZET6芯片。開(kāi)足風(fēng)槍馬力,把STM32F103ZET6淦下來(lái),再把GD32F103ZET6淦上去,一番辛苦下,大功告成。保險(xiǎn)起見(jiàn),下面使用正點(diǎn)原子STM32庫(kù)函數(shù)例程一一測(cè)試,絕不給室友發(fā)現(xiàn)的機(jī)會(huì)!流水燈測(cè)試
直接下載流水燈程序到GD32,因?yàn)槭褂玫街黝l按照STM32的來(lái)配置(72M)無(wú)需修改啟動(dòng)超時(shí),程序下載使用J-Link(ST-Link不行),因?yàn)槎际腔贛3內(nèi)核,所以直接使用Keil下載!下載完成,復(fù)位啟動(dòng)!啪!翻車!LED反轉(zhuǎn)時(shí)間約為設(shè)定時(shí)間的10倍,多年經(jīng)驗(yàn)告訴我,我晶振引腳虛焊了,補(bǔ)焊,復(fù)位,啟動(dòng)!啪!成了,燈閃了!但這一切還不夠,萬(wàn)一室友學(xué)會(huì)的點(diǎn)燈,后面咋辦?我還要測(cè)!串口測(cè)試,替換文字,下載例程。程序啟動(dòng),測(cè)試完美!仿真測(cè)試,斷點(diǎn)測(cè)試,完美~外部中斷測(cè)試,按下按鍵,LED切換,測(cè)試通過(guò)!定時(shí)器閃燈,測(cè)試完美!定時(shí)器PWM比較輸出,測(cè)試完美!現(xiàn)象呼吸燈。TFT測(cè)試,完美到爆
ADC檢測(cè),完美極了
模擬IIC測(cè)試,穩(wěn)如老狗
不測(cè)了,就先到這,下次等室友睡覺(jué)在繼續(xù)測(cè),今天美滋滋,STM32芯片反手一賣(mài)就是幾倍差價(jià),同志們學(xué)會(huì)了沒(méi)!二、GD32與STM32
GD32和STM32資源對(duì)比
GD32與STM32軟硬件設(shè)計(jì)對(duì)比
相同點(diǎn)
- 芯片的型號(hào)命名方式相同,而且相同信號(hào)的引腳定義基本相同,具體命名規(guī)范如下:
- 函數(shù)庫(kù)文件基本相同:因?yàn)镚D32正向研發(fā),對(duì)于PIN TO PIN的芯片,內(nèi)部寄存器地址和STM32完全相同,所以STM32的庫(kù)文件編譯后的文件可以直接下載。
- 編譯工具相同如keil、IAR都相同。
不同點(diǎn)
- 工作電壓有所不同,STM32的工作電壓在2.0~ 3.6V或1.65~3.6V,GD32的工作電壓在 2.6~3.6V,工作范圍相對(duì)要窄。
- GD32F303/F103主頻比STM32F103主頻要高,適合一些更快的計(jì)算中。
- GD32提高了相同工作頻率下的代碼執(zhí)行速度,所以GD32的_NOP()時(shí)間比STM32更加短,所以不使用定時(shí)器做延時(shí)時(shí)要注意修改。
- GD32的flash擦除時(shí)間要比STM32更長(zhǎng)。
- 功耗上GD32的功耗要相對(duì)高一點(diǎn)。
- GD32的BOOT0必須接10K下拉或接GND,ST可懸空,這點(diǎn)很重要。
- RC復(fù)位電路必須要有,否則MCU可能不能正常工作,ST的有時(shí)候可以不要。
- GD的swd接口驅(qū)動(dòng)能力比ST弱,可以有如下幾種方式解決:a、線盡可能短一些;b、降低SWD通訊速率;c、SWDIO接10k上拉,SWCLK接10k下拉。
- GD對(duì)時(shí)序要求嚴(yán)格,配置外設(shè)需要先打開(kāi)時(shí)鐘,在進(jìn)行外設(shè)配置,否則可能導(dǎo)致外設(shè)無(wú)法配置成功;ST的可以先配置在開(kāi)時(shí)鐘。
- 修改外部晶振起振超時(shí)時(shí)間,不用外部晶振可跳過(guò)這步。原因:GD與ST的啟動(dòng)時(shí)間存在差異,為了讓GD MCU更準(zhǔn)確復(fù)位(不修改可能無(wú)法復(fù)位)。
作者:JeckXu666來(lái)源:果果小師弟版權(quán)歸原作者所有,如有侵權(quán),請(qǐng)聯(lián)系刪除。
▍