日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當前位置:首頁 > > 21ic電子網
[導讀]ST的價格和交期不用多說,大家都明白,在產品中大量使用ST的芯片的公司都在尋找國產替代的出路。我們的產品追求的的是MCU的串口相應速度,在網友的使用評價和我們針對性測試之后,GD32最終被定為最優(yōu)的產品,不僅性能符合要求,價格也是十分便宜,用來替換ST最好不過了。項目的初期,我們和GD的代理進行了面對面的交流,他們推介通過修改相關寄存器直接燒錄ST的代碼,但是我們實測并不理想。于是在他們的配合下成功使用GD自帶的固件庫替換掉了ST的芯片。產品實測無任何問題,甚至由于GD更高的主頻,運行效果遠超預期!國產芯片,未來可期!

出品?21ic論壇??吶咯密密

網站:bbs.21ic.com


ST的價格和交期不用多說,大家都明白,在產品中大量使用ST的芯片的公司都在尋找國產替代的出路。我們的產品追求的的是MCU的串口相應速度,在網友的使用評價和我們針對性測試之后,GD32最終被定為最優(yōu)的產品,不僅性能符合要求,價格也是十分便宜,用來替換ST最好不過了。項目的初期,我們和GD的代理進行了面對面的交流,他們推介通過修改相關寄存器直接燒錄ST的代碼,但是我們實測并不理想。于是在他們的配合下成功使用GD自帶的固件庫替換掉了ST的芯片。產品實測無任何問題,甚至由于GD更高的主頻,運行效果遠超預期!國產芯片,未來可期!


下面就進行ST對GD的代碼移植:


區(qū)別:GD32E230 對比 STM32F030 有著很好的兼容性和更高的性價比,內核和外設都有所增強。


STM32F030 與 GD32E230 在相同封裝下是 Pin To Pin 兼容的。?外設上本人覺得 GD32E230 功能覆蓋 STM32F030,大部分外設 GD32E230 完全兼容 STM32F030, 后文我會具體介紹。 ?

需要 注意: STM32F030 外設編號從 1 開始, GD32E103 外設編號從 0 開始,且命名有差異。 ?這里介紹了STM32F030 系列和 GD32E230 系列內部資源對比總覽
??
???
STM32F0->GD32E230代碼移植,非直接燒錄
因為GD在主頻上高于ST,所以在使用直接燒錄的方式移植時會出現(xiàn)延時不同等問題,這也是我不采用此方法的原因,不如直接重寫代碼。


我們可以從最常用的開始,因為時間原因,不可能全部的函數(shù)都移植,這里介紹最常用的。


GPIO:例如我們使用STM32 USART1前需要初始化相關的IO操作:

STM32F0->GD32E230代碼移植,非直接燒錄

我們需要對GPIO的時鐘進行初始化,然后定義端口的復用模式,然后設置PA9,PA10的IO模式速度等參數(shù)。因為使用了RS485,還要對使能口進行設置,這一點在GD上同樣需要進行。


STM32F0->GD32E230代碼移植,非直接燒錄

只不過相對于ST的庫函數(shù),GD的更加簡潔,因為GD的庫函數(shù)的集成度更高,使用起來更加方便快捷。


代碼的最后兩行應該是設置端口的輸出高低電平,我采用了寄存器的方式。加快代碼運行速度。


原型是:gpio_bit_set(uint32_t gpio_periph,uint32_t pin);
? ?? ?? ?? ? gpio_bit_reset(uint32_t gpio_periph,uint32_t pin);

串口:GPIO初始化完成之后我們需要配置串口:


STM32F0->GD32E230代碼移植,非直接燒錄

這里大家都知道的,配置串口的時鐘,波特率,起始位,停止位,數(shù)據位。這一點在GD上面同樣的體現(xiàn)模式:


STM32F0->GD32E230代碼移植,非直接燒錄
可以看得到的是代碼的簡潔程度是不同的,GD的外設配置和ST的HAL庫有些類似,精簡了代碼量,但是設置的東西還是一樣的。


設置完成后就可以使用庫函數(shù)的發(fā)送和接收函數(shù):


STM32F0->GD32E230代碼移植,非直接燒錄
STM32F0->GD32E230代碼移植,非直接燒錄

需要提的一點是,串口發(fā)送完成的判斷應該使用while(RESET == usart_flag_get(USART0, USART_FLAG_TC));我在這里卡住過,這個是最優(yōu)的方式。


接收函數(shù)的代碼執(zhí)行效率著實不高。我使用的是直接操作寄存器,有需要的可以借鑒一下。


STM32F0->GD32E230代碼移植,非直接燒錄

如果需要使用串口中斷,直接調用一下幾個函數(shù):


nvic_irq_enable(USART0_IRQn, 0);


usart_interrupt_enable(USART0, USART_INT_RBNE);


先到這里,會跟進。

本文系21ic論壇網友吶咯密密原創(chuàng)


STM32F0->GD32E230代碼移植,非直接燒錄

免責聲明:本文內容由21ic獲得授權后發(fā)布,版權歸原作者所有,本平臺僅提供信息存儲服務。文章僅代表作者個人觀點,不代表本平臺立場,如有問題,請聯(lián)系我們,謝謝!

21ic電子網

掃描二維碼,關注更多精彩內容

本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內容真實性等。需要轉載請聯(lián)系該專欄作者,如若文章內容侵犯您的權益,請及時聯(lián)系本站刪除( 郵箱:macysun@21ic.com )。
換一批
延伸閱讀
關閉