寫在開頭的話:
最近心血來潮,打算重新?lián)炱鹄媳拘?,結(jié)果發(fā)現(xiàn)很多都忘記了。干脆重新開始學(xué)習(xí),并做個(gè)從零開始的筆記了。
STM32系列芯片包括F0/F1/F2/F3/F4/F7/L0/L1/L4/H7等系列芯片芯片。不同系列的芯片適用于不同的應(yīng)用場景。F0/L0基于ARM Cortex?-M0,F(xiàn)1/F2/L1系列基于ARM Cortex?-M3,F(xiàn)3/F4/L4系列基于ARM Cortex?-M4,F(xiàn)7/H7基于ARM Cortex?-M7。L系列表示超低功耗,H表示超高性能(對應(yīng)就是高功耗了),F(xiàn)就是個(gè)折中方案了,性能不錯,功耗也不高。
其他的先不管,F(xiàn)1系列芯片主要分類如下:
·超值型STM32F100 - 24 MHz CPU,具有電機(jī)控制和CEC功能
·基本型STM32F101 - 36 MHz CPU,具有高達(dá)1MB的Flash
·連接型STM32F102 – 48 MHz CPU具備USB FS device接口
·增強(qiáng)型STM32F103 - 72 MHz CPU,具有高達(dá)1MB的Flash、電機(jī)控制、USB和CAN
·互聯(lián)型STM32F105/107 - 72 MHz CPU,具有以太網(wǎng)MAC、CAN和USB 2.0 OTG
STM32型號的說明:以STM32F103RBT6這個(gè)型號的芯片為例,該型號的組成為7個(gè)部分,其命名規(guī)則如下:
具體信息可查閱網(wǎng)站https://www.stmcu.com.cn/。
RTT操作系統(tǒng)
官網(wǎng)的簡介:
RT-Thread是一款來自中國的開源嵌入式實(shí)時(shí)操作系統(tǒng),由國內(nèi)一些專業(yè)開發(fā)人員從2006年開始開發(fā)、維護(hù),除了類似FreeRTOS和UCOS的實(shí)時(shí)操作系統(tǒng)內(nèi)核外,也包括一系列應(yīng)用組件和驅(qū)動框架,如TCP/IP協(xié)議棧,虛擬文件系統(tǒng),POSIX接口,圖形用戶界面,F(xiàn)reeModbus主從協(xié)議棧,CAN框架,動態(tài)模塊等,因?yàn)橄到y(tǒng)穩(wěn)定,功能豐富的特性被廣泛用于新能源,電網(wǎng),風(fēng)機(jī)等高可靠性行業(yè)和設(shè)備上,已經(jīng)被驗(yàn)證是一款高可靠的實(shí)時(shí)操作系統(tǒng)。RT-Thread實(shí)時(shí)操作系統(tǒng)遵循GPLv2+許可證,實(shí)時(shí)操作系統(tǒng)內(nèi)核及所有開源組件可以免費(fèi)在商業(yè)產(chǎn)品中使用,不需要公布應(yīng)用源碼,沒有任何潛在商業(yè)風(fēng)險(xiǎn)。
RT-Thread操作系統(tǒng)源碼風(fēng)格與linux一致,在官方提供的源碼中,包含有諸多芯片的工程示例,LPC系列和STM32F系列的很多。再者RT-Thread代碼開源,又有那么詳細(xì)的資料,如果遇到官方bsp下沒有的芯片,對于動手能力強(qiáng)的同學(xué),自己動手移植也比較方便。而且官方提供了詳細(xì)的中文文檔,對于英語不太好的同學(xué)簡直就是一個(gè)福音。而且,RT-Thread提供了豐富的組件,使用者可以非常方便的實(shí)現(xiàn)諸如GUI、網(wǎng)絡(luò)協(xié)議棧、Modbus甚至是SQLite數(shù)據(jù)庫等功能。后續(xù)使用的時(shí)候再細(xì)細(xì)體會它的強(qiáng)大之處了。
嵌入式的編程,往下說就是操作MCU的寄存器。而固件庫就是函數(shù)的集合,固件庫函數(shù)的作用是向下負(fù)責(zé)與寄存器直接打交道,向上提供用戶函數(shù)調(diào)用的接口(API)。相對于固件庫的方式,直接寫寄存器的代碼更為簡潔,只需要對指定的寄存器進(jìn)行需要的操作就可以了,但是對于STM32來說,寄存器多達(dá)數(shù)百個(gè),記起來也是一件非常讓人頭疼的事情。ST推出了官方固件庫,固件庫將這些寄存器底層操作都封裝起來,提供一整套接口,你不需要去知道操作的是哪個(gè)寄存器,你只需要知道調(diào)用哪些函數(shù)即可。關(guān)于寫寄存器還是利用固件庫去開發(fā)哪個(gè)好,一直都有爭議,只能說存在即為合理,各有各的好處,我個(gè)人比較懶,不太喜歡去記那些寄存器都是啥。再者,我也不是專門搞STM32的,要是用寫寄存器的方式開發(fā)的話,過一段時(shí)間不弄,再回來估計(jì)又得花些時(shí)間對著文檔看了。所以在后續(xù)的博客,我也都會利用固件庫開發(fā)。當(dāng)然,用不用是一回事兒,根據(jù)官網(wǎng)技術(shù)文檔,操作寄存器的方式是必須要會的。個(gè)人建議,還是需要學(xué)會看硬件文檔,看官方的技術(shù)資料,而不是遇到問題就百度。學(xué)會看官方的技術(shù)文檔后,遇到問題解決起來將會事半功倍。
點(diǎn)亮LED
點(diǎn)亮LED,首先自然是安裝Keil了。當(dāng)然,使用其他工具也可以,對于我來說,我還是比較鐘情于Keil。我現(xiàn)在使用的是Keil5,編譯工具鏈為MDK-ARM v5.24。開發(fā)板為淘寶上找的便宜的不能再便宜的一塊STM32C8T6開發(fā)板,引腳都要自己焊。下載線為ST-Link v2。根據(jù)淘寶商提供的硬件資料,這個(gè)板子PB12連接了一個(gè)LED燈,LED另外一端連接了上拉電阻,即LED在PB12低電平時(shí)點(diǎn)亮。
廢話不說了,Keil的安裝和破解,網(wǎng)上多的是,隨便找個(gè)教程,走一走就完了。
第一步,創(chuàng)建工程
打開Keil后,首先需要創(chuàng)建個(gè)工程。點(diǎn)擊project->New μVision Project。
填寫工程名
選擇芯片,如果沒有你要的芯片,就需要到官網(wǎng)上去下載,然后安裝。
選擇需要用到的功能,Core、Startup和GPIO,可以看到下面有警告,GPIO依賴FrameWork和RCC,也要去勾選上就好了。
然后確定,工程就創(chuàng)建成功了。
第二步,增加main.c文件到工程中
點(diǎn)擊如下按鈕,創(chuàng)建一個(gè)新文件,并保存文件到工程目錄中。
點(diǎn)擊工程管理按鈕,管理工程
點(diǎn)擊Add Files 把main.c加入到Source Group 1下,Target 1和Source Group 1都可以修改,改成一個(gè)合適的名字。
第三部,編寫main.c 文件
#include"stm32f10x.h"
-
led
+關(guān)注
關(guān)注
242文章
23252瀏覽量
660554 -
mcu
+關(guān)注
關(guān)注
146文章
17123瀏覽量
350975 -
STM32
+關(guān)注
關(guān)注
2270文章
10895瀏覽量
355722
原文標(biāo)題:STM32F103+RT-Thread從零開始(一)——點(diǎn)亮LED
文章出處:【微信號:RTThread,微信公眾號:RTThread物聯(lián)網(wǎng)操作系統(tǒng)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論