STM32F10x程式移植到GD32E10x

2021-10-10 02:15:27 字數 1182 閱讀 8396

前言:兩個晶元是pin to pin的,因此硬體基本不用修改,只需修改軟體即可。

1、開發化境

ide:iar,mdk

2、資料型別定義

在stm32早期的庫中使用了u8,u16,u32等資料型別,需要在gd32e10x.**件中定義u8,u16,u32等資料型別。

3、時鐘配置

根據硬體設計,在system_gd32e10x.c裡選擇使用內部8m或者外部晶振,不同的外部晶振倍頻係數不一樣,倍頻到120m。

4、systick延時

由於gd32e10x最大主頻是120m,stm32f10x只能到72m,所以在延時函式裡面的systick->load 賦值上要把72改為120,當然最大延時時長也就發生了變化。

5、gpio操作

stm32那樣,需要先建立乙個結構體變數,再給結構體成員賦值;gd32更簡單,直接用gpio_init函式初始化,例如:

gpio_init(gpiob, gpio_mode_out_pp, gpio_ospeed_10mhz,gpio_pin_2);
6、timer

操作和stm32基本一樣,在gd32e10x系列中,有timer 5、timer 6兩個普通定時器,可以配置自動過載,產生更新中斷。

7、串列埠

gd32e10x的串列埠從usart0開始,對應的就是stm32的usart1。其他操作和stm32型別。

例如操作gd32e10x的usart0:

初始化串列埠:

void comminit(void)

串列埠中斷:

void usart0_irqhandler(void)

}

8、flash程式設計

gd32e10x系列flash只能字(32bit)、雙字(64bit)程式設計,不支援半字(16bit)程式設計。

STM32F10x系列 中斷

概念問題 中斷與事件有什麼聯絡與區別?stm32之中斷與事件 中斷與事件的區別 簡單概括下。中斷 cpu單執行緒情況下只能處理單一任務,在有零時任務需要處理時,可以暫時放下當前任務,優先處理零時任務,再回過來處理之前的任務。多個中斷可以進行巢狀,比如產生了多個零時任務,那麼就可以按照優先順序處理這多...

STM32F10X入門 流水燈

2019 3 16 2019 3 19 core cm32.c stdin.h中定義了字元型 stm32f10x.h stm32f10x conf.h中定義了引用的外設標頭檔案 庫檔案之間的依賴呼叫關係 pngstm32f10x.h檢視位址對映 比如define gpioa base apb2per...

STM32F10X 位帶操作

在stm32微控制器的學習中,有乙個最大的特點就是你所編寫的stm32的程式操作,基本上都是匯流排的操作,比如gpiob odr 0x0001 或者直接等於1 這樣的操作必須要考慮整個暫存器的資料,但其實如果學過51微控制器的人都知道,我們除了對於匯流排操作外,我們還是經常會對單獨的位進行操作,比如...