ST的價(jià)格和交期不用多說(shuō),大家都明白,在產(chǎn)品中大量使用ST的芯片的公司都在尋找國(guó)產(chǎn)替代的出路。我們的產(chǎn)品追求的的是MCU的串口相應(yīng)速度,在網(wǎng)友的使用評(píng)價(jià)和我們針對(duì)性測(cè)試之后,GD32最終被定為最優(yōu)的產(chǎn)品,不僅性能符合要求,價(jià)格也是十分便宜,用來(lái)替換ST最好不過(guò)了。項(xiàng)目的初期,我們和GD的代理進(jìn)行了面對(duì)面的交流,他們推介通過(guò)修改相關(guān)寄存器直接燒錄ST的代碼,但是我們實(shí)測(cè)并不理想。于是在他們的配合下成功使用GD自帶的固件庫(kù)替換掉了ST的芯片。產(chǎn)品實(shí)測(cè)無(wú)任何問(wèn)題,甚至由于GD更高的主頻,運(yùn)行效果遠(yuǎn)超預(yù)期!國(guó)產(chǎn)芯片,未來(lái)可期!
下面就進(jìn)行ST對(duì)GD的代碼移植:
區(qū)別:GD32E230 對(duì)比 STM32F030 有著很好的兼容性和更高的性價(jià)比,內(nèi)核和外設(shè)都有所增強(qiáng)。
STM32F030 與 GD32E230 在相同封裝下是 Pin To Pin 兼容的。外設(shè)上本人覺(jué)得 GD32E230功能覆蓋 STM32F030,大部分外設(shè) GD32E230 完全兼容 STM32F030, 后文我會(huì)具體介紹。 需要注意:STM32F030 外設(shè)編號(hào)從 1 開始, GD32E103 外設(shè)編號(hào)從 0 開始,且命名有差異。這里介紹了STM32F030 系列和 GD32E230 系列內(nèi)部資源對(duì)比總覽
因?yàn)镚D在主頻上高于ST,所以在使用直接燒錄的方式移植時(shí)會(huì)出現(xiàn)延時(shí)不同等問(wèn)題,這也是我不采用此方法的原因,不如直接重寫代碼。
我們可以從最常用的開始,因?yàn)闀r(shí)間原因,不可能全部的函數(shù)都移植,這里介紹最常用的。
GPIO:例如我們使用STM32 USART1前需要初始化相關(guān)的IO操作:
我們需要對(duì)GPIO的時(shí)鐘進(jìn)行初始化,然后定義端口的復(fù)用模式,然后設(shè)置PA9,PA10的IO模式速度等參數(shù)。因?yàn)槭褂昧?a target="_blank">RS485,還要對(duì)使能口進(jìn)行設(shè)置,這一點(diǎn)在GD上同樣需要進(jìn)行。
只不過(guò)相對(duì)于ST的庫(kù)函數(shù),GD的更加簡(jiǎn)潔,因?yàn)镚D的庫(kù)函數(shù)的集成度更高,使用起來(lái)更加方便快捷。
代碼的最后兩行應(yīng)該是設(shè)置端口的輸出高低電平,我采用了寄存器的方式。加快代碼運(yùn)行速度。
原型是:gpio_bit_set(uint32_t gpio_periph,uint32_t pin);
gpio_bit_reset(uint32_t gpio_periph,uint32_t pin); 串口:GPIO初始化完成之后我們需要配置串口:
這里大家都知道的,配置串口的時(shí)鐘,波特率,起始位,停止位,數(shù)據(jù)位。這一點(diǎn)在GD上面同樣的體現(xiàn)模式:
可以看得到的是代碼的簡(jiǎn)潔程度是不同的,GD的外設(shè)配置和ST的HAL庫(kù)有些類似,精簡(jiǎn)了代碼量,但是設(shè)置的東西還是一樣的。
設(shè)置完成后就可以使用庫(kù)函數(shù)的發(fā)送和接收函數(shù):
需要提的一點(diǎn)是,串口發(fā)送完成的判斷應(yīng)該使用while(RESET == usart_flag_get(USART0, USART_FLAG_TC));我在這里卡住過(guò),這個(gè)是最優(yōu)的方式。
接收函數(shù)的代碼執(zhí)行效率著實(shí)不高。我使用的是直接操作寄存器,有需要的可以借鑒一下。
如果需要使用串口中斷,直接調(diào)用一下幾個(gè)函數(shù):
nvic_irq_enable(USART0_IRQn, 0);
usart_interrupt_enable(USART0, USART_INT_RBNE);
原文標(biāo)題:STM32F0->GD32E230代碼移植,非直接燒錄
文章出處:【微信公眾號(hào):嵌入式ARM】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
吶咯密密
-
ST
+關(guān)注
關(guān)注
32文章
1134瀏覽量
129014 -
代碼
+關(guān)注
關(guān)注
30文章
4802瀏覽量
68735
原文標(biāo)題:STM32F0->GD32E230代碼移植,非直接燒錄
文章出處:【微信號(hào):gh_c472c2199c88,微信公眾號(hào):嵌入式微處理器】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論