gd32和stm32的編程區別
GD32和STM32是目前市場上比較流行的兩種芯片,它們都具有高性能、低功耗和豐富的外設等特點,因此得到了廣泛的應用。但是,GD32和STM32在編程上還是存在差異的,本文將就此進行詳細地解析。
一、GD32和STM32的概述
GD32和STM32是龍芯(RISC-V)和意法半導體(ARM Cortex-M)兩家公司推出的芯片,由于兩家公司的巨大影響力,它們在市場上一直處于領先位置。GD32是龍芯推出的32位微控制器,基于RISC-V架構,主要應用于智能家居、物聯網和工業控制等領域;STM32是意法半導體推出的32位微控制器,基于ARM Cortex-M架構,主要應用于汽車、醫療、電力等領域。
二、GD32和STM32的編程區別
1. 開發環境
GD32和STM32的開發環境主要分為兩種:Keil和GCC,這兩種開發環境對于GD32和STM32都是通用的,但是在具體的編譯工具鏈的選擇上有所不同。對于Keil開發環境來說,在編譯器的選擇上STMCubeIDE是只能用于STM32的,而GCC則沒有這個限制,可以用于GD32和STM32。此外,在驅動和庫的選擇上也有所不同。
2. 命名空間
在代碼的編寫上,GD32和STM32的命名空間略有不同。例如,在使用時鐘控制器的API時,在STM32中是通過RCC來訪問,而在GD32中則是通過rcu根據不同的模塊來訪問。這種命名空間的不同性實際上是由于不同的芯片結構造成的。
3. 輸出方式
GD32和STM32在輸出方式上也有所不同。在STM32中,輸出方式主要有串口、JTAG、SWD和USB等;而在GD32中,則多數通過串口輸出程序信息。此外,兩者在調試時,也有不同的方法,例如在STM32中,調試信息是通過SWD方式傳輸到PC上;而在GD32中則是通過串口直接輸出的。
4. 外設驅動
GD32和STM32的外設驅動也有所不同,在使用外設時需要注意。比如,在使用GPIO時,GD32需要指定端口的引腳數量和具體使用的引腳,而STM32則只需要指定端口一個參數。
5. 中斷處理
在中斷處理上,GD32和STM32也有所不同。GD32中的中斷處理快速跳轉準備工作需要通過指令進行,而STM32中的中斷處理則是通過NVIC進行的。在使用時需要注意不同的編寫方式和調用函數。
6. ADC/DAC
在ADC/DAC的驅動上,GD32和STM32也有所不同。在GD32中,ADC和DAC是分別獨立的,需要對不同的模塊進行初始化,而STM32中,則是通過一個通道來進行控制。
7. 其他
GD32和STM32在其他方面的差異還有很多,在具體的使用過程中需要根據具體的需求進行操作。
三、總結
雖然GD32和STM32在硬件上都擁有32位架構和豐富的外設,但是在具體的編程上卻發現有許多的差異。這需要程序員針對具體的需求,選擇合適的開發環境和合適的編寫方式,以達到最好的效果。在今后的應用中,這兩種芯片或許還會有更多不同的地方,我們需要不斷的學習和探索,以適應市場對于硬件的不斷升級和迭代的要求。
-
微控制器
+關注
關注
48文章
7649瀏覽量
152104 -
單片機
+關注
關注
6043文章
44622瀏覽量
638523 -
STM32
+關注
關注
2272文章
10923瀏覽量
357553 -
GD32
+關注
關注
7文章
413瀏覽量
24468
發布評論請先 登錄
相關推薦
為什么在rt-thread studio創建不了gd32的項目?
【GD32 MCU入門教程】GD32 MCU GPIO 結構與使用注意事項
![【<b class='flag-5'>GD32</b> MCU入門教程】<b class='flag-5'>GD32</b> MCU GPIO 結構與使用注意事項](https://file1.elecfans.com/web2/M00/06/89/wKgaombbu8qAXdJKAAAW--yDqzA279.png)
【GD32 MCU 入門教程】GD32 MCU 常見外設介紹(14)RTC 模塊介紹
![【<b class='flag-5'>GD32</b> MCU 入門教程】<b class='flag-5'>GD32</b> MCU 常見外設介紹(14)RTC 模塊介紹](https://file1.elecfans.com/web2/M00/03/E0/wKgZombH42WAIyq2AAA3DFzN548758.png)
GD32 MCU 入門教程】GD32 MCU 常見外設介紹(12)FMC 模塊介紹
![<b class='flag-5'>GD32</b> MCU 入門教程】<b class='flag-5'>GD32</b> MCU 常見外設介紹(12)FMC 模塊介紹](https://file1.elecfans.com/web2/M00/04/87/wKgaombFSS2AWG-GAAB5lPnhR3c604.png)
【GD32 MCU 入門教程】二、GD32 MCU 燒錄說明(1)ISP 燒錄
![【<b class='flag-5'>GD32</b> MCU 入門教程】二、<b class='flag-5'>GD32</b> MCU 燒錄說明(1)ISP 燒錄](https://file1.elecfans.com/web2/M00/02/38/wKgaoma0f8SAB_h5AAAvpALfiNs789.png)
【GD32 MCU 入門教程】一、GD32 MCU 開發環境搭建(3)使用 Embedded Builder 開發 GD32
![【<b class='flag-5'>GD32</b> MCU 入門教程】一、<b class='flag-5'>GD32</b> MCU 開發環境搭建(3)使用 Embedded Builder 開發 <b class='flag-5'>GD32</b>](https://file1.elecfans.com/web2/M00/02/37/wKgaoma0e3mANRvBAAAxO0zTl60782.png)
【GD32 MCU 入門教程】一、GD32 MCU 開發環境搭建(2)使用 IAR 開發 GD32
![【<b class='flag-5'>GD32</b> MCU 入門教程】一、<b class='flag-5'>GD32</b> MCU 開發環境搭建(2)使用 IAR 開發 <b class='flag-5'>GD32</b>](https://file1.elecfans.com/web2/M00/01/49/wKgZoma0doSAZgTbAABV8x9Lb_4326.png)
【GD32 MCU 入門教程】一、GD32 MCU 開發環境搭建(1)使用Keil開發GD32
![【<b class='flag-5'>GD32</b> MCU 入門教程】一、<b class='flag-5'>GD32</b> MCU 開發環境搭建(1)使用Keil開發<b class='flag-5'>GD32</b>](https://file1.elecfans.com/web2/M00/02/32/wKgaoma0bSqAZmYJAABWzE6EVjY883.png)
都是32位MCU,ESP32、GD32、STM32有什么區別
![都是32位MCU,ESP32、<b class='flag-5'>GD32</b>、<b class='flag-5'>STM32</b>有什么<b class='flag-5'>區別</b>](https://file.elecfans.com/web2/M00/02/C4/pYYBAGDSzfeAP86XAAAO5PbqJbI698.png)
GD32 ADC轉換時間如何計算?
![<b class='flag-5'>GD32</b> ADC轉換時間如何計算?](https://file1.elecfans.com/web2/M00/C2/75/wKgZomXlJOGANn8xAAA8pT3MMN4777.png)
GD32 MCU ISP失敗的原因
![<b class='flag-5'>GD32</b> MCU ISP失敗的原因](https://file1.elecfans.com/web2/M00/C1/B2/wKgZomXeix-AYt0QAAA9fb4pF5E360.png)
評論