把室友的STM32换成了GD32,会被打吗?
摘要:月黑風高夜!一雙黑手伸向了室友的STM32開發板!一日逛淘寶,推送STM32F103ZET6原裝芯片,驚!STM32F103ZET6居然漲價到388一片。
一、什么是GD32
GD32是由北京兆易創新開發的國產32位MCU,基于Arm Cortex- M3/M23/M4內核以及RISC-V內核的32位通用微控制器,與STM32相比,CPU主頻更高,內存更多,外設更豐富。
其眾多產品是以STM32芯片為模板,基于STM32的底層寄存器地址進行正向研發,部分產品可以直接PIN TO PIN替代STM32的芯片,部分型號可以直接以STM32的程序做部分修改后直接燒入進GD32中運行。
例如GD32E103、GD32F10x、GD32F30x都是和STM32F10x系列是完全PIN TO PIN兼容的,內部地址寄存器完全兼容,唯一區別只是內核不同,但在使用外設時影響不會很大。
一個大膽的想法從我腦海中誕生,我要貍貓換太子,GD32F103ZET6替換掉STM32F103ZET6。
入夜,趁著室友入睡后,悄悄的拿走室友的STM32開發板,點起我的小臺燈。
掏出了我沉寂許久的GD32F103ZET6芯片。
開足風槍馬力,把STM32F103ZET6淦下來,再把GD32F103ZET6淦上去,一番辛苦下,大功告成。
保險起見,下面使用正點原子STM32庫函數例程一一測試,絕不給室友發現的機會!
流水燈測試
直接下載流水燈程序到GD32,因為使用到主頻按照STM32的來配置(72M)無需修改啟動超時,程序下載使用J-Link(ST-Link不行),因為都是基于M3內核,所以直接使用Keil下載!下載完成,復位啟動!
啪!翻車!LED反轉時間約為設定時間的10倍,多年經驗告訴我,我晶振引腳虛焊了,補焊,復位,啟動!
啪!成了,燈閃了!
但是這一切還不夠,萬一室友學會的點燈,后面咋辦?我還要測!
串口測試,替換文字,下載例程。
程序啟動,測試完美!
仿真測試,斷點測試,完美
外部中斷測試,按下按鍵,LED切換,測試通過
定時器閃燈,測試完美!定時器PWM比較輸出,測試完美!現象呼吸燈。
TFT測試,完美到爆
ADC檢測,完美極了
模擬IIC測試,穩如老狗
不測了,就先到這,下次等室友睡覺在繼續測,今天美滋滋,STM32芯片反手一賣就是幾倍差價,同志們學會了沒!
二、GD32與STM32
GD32和STM32資源對比
GD32與STM32軟硬件設計對比
相同點
芯片的型號命名方式相同,而且相同信號的引腳定義基本相同,具體命名規范如下
函數庫文件基本相同:因為GD32正向研發,對于PIN TO PIN的芯片,內部寄存器地址和STM32完全相同,所以STM32的庫文件編譯后的文件可以直接下載。
編譯工具相同如keil、IAR都相同
不同點
工作電壓有所不同,STM32的工作電壓在2.0~ 3.6V或1.65~3.6V,GD32的工作電壓在 2.6~3.6V,工作范圍相對要窄。
GD32F303/F103主頻比STM32F103主頻要高,適合一些更快的計算中
GD32提高了相同工作頻率下的代碼執行速度,所以GD32的_NOP()時間比STM32更加短,所以不使用定時器做延時時要注意修改
GD32的flash擦除時間要比STM32更長
功耗上GD32的功耗要相對高一點
GD32的BOOT0必須接10K下拉或接GND,ST可懸空,這點很重要。
RC復位電路必須要有,否則MCU可能不能正常工作,ST的有時候可以不要。
GD的swd接口驅動能力比ST弱,可以有如下幾種方式解決:
a、線盡可能短一些;
b、降低SWD通訊速率;
c、SWDIO接10k上拉,SWCLK接10k下拉。
GD對時序要求嚴格,配置外設需要先打開時鐘,在進行外設配置,否則可能導致外設無法配置成功;ST的可以先配置在開時鐘。
修改外部晶振起振超時時間,不用外部晶振可跳過這步。原因:GD與ST的啟動時間存在差異,為了讓GD MCU更準確復位(不修改可能無法復位)。
-END-
我是張巧龍,一名教電子的大學老師,歡迎關注!
總結
以上是生活随笔為你收集整理的把室友的STM32换成了GD32,会被打吗?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 公积金余额怎么提取 如何提取公积金余额
- 下一篇: 征信自助机周末能用吗