最近在回顧51單片機,看到您的帖子,突然發現32確實是復雜很多。相比起來,51的內部感覺清晰可見。
當然,32復雜,是底層的麻煩,比如編譯的時候,需要啟動文件(.s)需要鏈接腳本(.icf/.ld)需要中斷向量表和更多的庫文件。燒錄需要使用jtag或swd下載,且需要指定下載到什么地方。運行前,程序需要配置內外部時鐘、配置鎖相環倍頻、配置各個時鐘總線的分頻、配置向量表地址、以及系統滴答定時器等。然后32的外設也是默認關閉的,包括寄存器都寫不進去的那種,使用外設前,需要先開啟外設時鐘,才能開始配置外設。等等。。。
不過這些內容其實被庫和軟件隱藏起來了,或者說幫我們處理好了,其實樓主可以放心,你說的那些如引腳ABCD以及驅動什么的,站軟件封裝外來看,是很簡單的。
我給個簡單的建議,樓主可以先用CubeMX生成一個程序,他這個軟件可以直接配置IO的輸入輸出包括外設什么的都可以直接配置。生成出來的程序直接就能跑,只要找到main函數的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
復制代碼
先簡單改一改、玩一玩,程序能跑起來,再學一學,就水到渠成了。 |