|
最近在回顧51單片機(jī),看到您的帖子,突然發(fā)現(xiàn)32確實(shí)是復(fù)雜很多。相比起來,51的內(nèi)部感覺清晰可見。
當(dāng)然,32復(fù)雜,是底層的麻煩,比如編譯的時(shí)候,需要啟動(dòng)文件(.s)需要鏈接腳本(.icf/.ld)需要中斷向量表和更多的庫(kù)文件。燒錄需要使用jtag或swd下載,且需要指定下載到什么地方。運(yùn)行前,程序需要配置內(nèi)外部時(shí)鐘、配置鎖相環(huán)倍頻、配置各個(gè)時(shí)鐘總線的分頻、配置向量表地址、以及系統(tǒng)滴答定時(shí)器等。然后32的外設(shè)也是默認(rèn)關(guān)閉的,包括寄存器都寫不進(jìn)去的那種,使用外設(shè)前,需要先開啟外設(shè)時(shí)鐘,才能開始配置外設(shè)。等等。。。
不過這些內(nèi)容其實(shí)被庫(kù)和軟件隱藏起來了,或者說幫我們處理好了,其實(shí)樓主可以放心,你說的那些如引腳ABCD以及驅(qū)動(dòng)什么的,站軟件封裝外來看,是很簡(jiǎn)單的。
我給個(gè)簡(jiǎn)單的建議,樓主可以先用CubeMX生成一個(gè)程序,他這個(gè)軟件可以直接配置IO的輸入輸出包括外設(shè)什么的都可以直接配置。生成出來的程序直接就能跑,只要找到main函數(shù)的while(1),在里面就可以像51一樣直接開始寫程序了,
- HAL_GPIO_WritePin(GPIOA, GPIO_Pin_0, GPIO_PIN_RESET); // PA0=0
- HAL_Delay(500); // 500ms
- HAL_GPIO_WritePin(GPIOA, GPIO_Pin_0, GPIO_PIN_SET); // PA0=1
- HAL_Delay(500); // 500ms
復(fù)制代碼
先簡(jiǎn)單改一改、玩一玩,程序能跑起來,再學(xué)一學(xué),就水到渠成了。 |
評(píng)分
-
查看全部評(píng)分
|