準備工作:
先下載了官方提供的手冊、DEMO、固件包,并通讀了一下(注意,MDK版本要求比較高!為了找個能用的Keil折騰了很久):
制作裸機點燈代碼
前面已經(jīng)有‘探路者’把這部分做完了,我就不再敘述了,不過還是要自己動手移植一下,這樣可以了解片子與f103等常用的芯片的區(qū)別。
添加FreeRTOS部分
這是第一次真正意義上自己獨立移植了一次FreeRTOS^_^,沒有遇到太多的障礙:
使用的FreeRTOS版本是正點原子f103光盤里面的,9.0版本
解壓縮后,只需要復(fù)制FreeRTOS,而用不到*-Plus:
FreeRTOS中,也有很多用不到的文件,請參考正點原子開源的FreeRTOS移植教程。
需要注意的地方是GD32的中斷都放在了gd32f3x0_it.c中,需要屏蔽2個中斷空函數(shù),進而直接調(diào)用freeRTOS內(nèi)的同名函數(shù):
并在systick_handler中加入調(diào)用FreeRTOS的時鐘函數(shù):
void SysTick_Handler(void)
{
//led_spark();
delay_decrement();
#if (INCLUDE_xTaskGetSchedulerState == 1)
if (xTaskgetSchedulerState() != taskSCHEDULER_NOT_STARTED)
{
#endif
xPortSysTickHandler();
#if (INCLUDE_xTaskGetSchedulerState == 1)
}
#endif
}
主要FreeRTOS的棧設(shè)置要合理:
#define configTOTAL_HEAP_SIZE ( ( size_t ) ( 2 * 1024 ) )
Program Size: Code=6068 RO-data=6448 RW-data=112 ZI-data=4296
這樣片子的可玩性還是挺高的。
移植正點原子OLED代碼:
這部分代碼邏輯比較簡單,看下正點原子的教程都可以很快搞定:
主要修改了正點原子通過位帶操作控制引腳改為使用GD的庫函數(shù):
//---------------------------OLED端口定義--------------------------
#define OLED_CS(x) gpio_bit_write(GPIOB,GPIO_PIN_0,(FlagStatus)(x));
#define OLED_RST(x) gpio_bit_write(GPIOA,GPIO_PIN_5,(FlagStatus)(x));
#define OLED_DC(x) gpio_bit_write(GPIOB,GPIO_PIN_1,(FlagStatus)(x));
#define OLED_WR(x) gpio_bit_write(GPIOB,GPIO_PIN_4,(FlagStatus)(x));
#define OLED_RD(x) gpio_bit_write(GPIOB,GPIO_PIN_5,(FlagStatus)(x));
最終完成移植:
總結(jié)
現(xiàn)在芯片都比較成熟,性能都過剩,這款芯片提供的資料也都夠用,對于上手使用比較方便。后面自己做一些手表、物聯(lián)網(wǎng)小產(chǎn)品,可以玩一下。
上一篇:關(guān)于GD32F150R8的物聯(lián)網(wǎng)網(wǎng)關(guān)設(shè)備的介紹和應(yīng)用
下一篇:FreeRTOS|再次移植
推薦閱讀最新更新時間:2025-06-29 07:50
設(shè)計資源 培訓(xùn) 開發(fā)板 精華推薦
- Microchip 升級數(shù)字信號控制器(DSC)產(chǎn)品線 推出PWM 分辨率和 ADC 速度業(yè)界領(lǐng)先的新器件
- 意法半導(dǎo)體STM32MP23x:突破成本限制的工業(yè)AI應(yīng)用核心
- 意法半導(dǎo)體推出用于匹配遠距離無線微控制器STM32WL33的集成的匹配濾波芯片
- ESP32開發(fā)板連接TFT顯示屏ST7789跳坑記
- 如何讓ESP32支持analogWrite函數(shù)
- LGVL配合FreeType為可變字體設(shè)置字重-ESP32篇
- 使用樹莓派進行 ESP32 Jtag 調(diào)試
- ESP32怎么在SPIFFS里面存儲html,css,js文件,以及網(wǎng)頁和arduino的通訊
- ESP32 freeRTOS使用測試
- AD5347 并行接口、八路電壓輸出、10 位 DAC 的典型應(yīng)用
- LTM4650AIY-1 4.5 至 16Vin、1.5V 和 1.2V、25A 輸出降壓穩(wěn)壓器的典型應(yīng)用電路
- L78L09AC可調(diào)輸出穩(wěn)壓器的典型應(yīng)用
- TDA7265 單電源典型應(yīng)用電路,帶靜音/待機的 25 +25W 立體聲放大器
- LTC2601IDD-1 16 位軌至軌 DAC 在 10 引腳 DFN 中的典型應(yīng)用
- 使用 ON Semiconductor 的 LV4985VH 的參考設(shè)計
- AM1G-0503DZ ±3.3V 1 瓦 DC-DC 轉(zhuǎn)換器的典型應(yīng)用
- DER-856 - 45 W USB PD 3.0,采用 3.3 V-21 V PPS(3.3 V-11 V 的 APDO 5 A)電源,使用 InnoSwitch3-Pro PowiGaN 和 VIA Labs VP302 控制器
- 具有低 IQ 模式的 A8585 寬輸入電壓、2A 降壓穩(wěn)壓器系列的典型應(yīng)用
- 全硅穩(wěn)壓器的典型應(yīng)用
- 上汽大眾:汽車網(wǎng)絡(luò)安全漏洞防護
- 恩智浦推出全新電池控制IC系列 助力新能源解決方案發(fā)展
- 全球首條GWh級新型固態(tài)電池生產(chǎn)線樣件下線
- 總投資455億元!三大動力電池項目齊刷進度條
- 現(xiàn)代汽車韓國建氫燃料電池廠,2028年投產(chǎn)
- 6月融資一覽:智能汽車芯片、第三代半導(dǎo)體、機器人成資本焦點
- 艙駕一體“點燃”新戰(zhàn)事
- 汽車智能化2.0引爆「萬億蛋糕」,誰在改寫游戲規(guī)則?
- 2025研華智能系統(tǒng)產(chǎn)業(yè)伙伴峰會成功舉辦
- 意法半導(dǎo)體公布2025年第二季度財報和電話會議時間安排