stm32入門(從51過渡到32)

單片機對於我來講,就是一個超級大機器,上面有一排一排數不盡的開關,我須要作的,就是根據個人設計,拿着一張超級大的表(Datasheet),把須要的開關(reg)都開關(config)到對應功能的位置(硬件配置初始化),而後運行你設計的程序流程(while(1)後面的),這機器應該先作什麼在作什麼,應該一邊作什麼可是過一下子查一個什麼,什麼發生了應該停下來作什麼,什麼來了應該回復什麼,這樣這樣函數

好比你須要使用一個io口,須要打開時鐘,配置方向,控制上下拉,甚至拓展附加功能設計

首先說說它的時鐘,51沒有時鐘控制這一說是由於51比32簡單,32內部結構很複雜,若是那個高頻的時鐘信號好比72M的那個,在全部內部線路上跑,那麼芯片就會很費電,若是學過場效應管的原理你就會知道,數字電路讓晶體管工做在兩個狀態中,飽和和截止,爲何呢,數字電路在1的時候有電壓沒電流,數字電路在0的時候有電流沒電壓,P=UI可知,二者只有其一(嚴格來講另外一個很小),則功率很小,在中間切換的時候,處於放大區,比較耗電,因此,時鐘是對功耗最好的控制,所以,默認狀態下,大部分電路的時鐘都是關閉的,當你要啓用哪一個模塊,你就必須把他的時鐘打開,消耗能源,啓動功能。開發

第二個是屬性類,好比單片機是i口仍是o口,要不要上下拉,由於32的設計應用場景比較複雜,因此多樣化的可選配置可讓32應付各類各樣的設計。經常使用的有推輓(大拉力輸出),開漏(小電流再加上拉電阻驅動大電流),上下拉等。還有速度控制,可選高速中速低速。io

第三個是附加功能類,好比io口能夠用作pwm輸出,Adda輸入輸出,i2c,usart,等,根據不一樣的功能會有對應的功能設置,這個具體要看數據手冊對相應寄存器的設定,初學建議用c語言配合庫函數開發加深理解,一開始不要求本身能寫,你去看別人寫的初始化配置函數,能看懂就行。class


說完了寄存器配置,說說中斷,32的中斷寫法跟51的不同,可是思路是同樣的,保護現場,記錄斷點,跳轉中斷服務,清除標識,回到斷電,恢復現場,32的中斷比51多不少,也能夠嵌套原理

說到底,32,51,430都只是單片機,只要知道他們的寄存器在那裏,如何根據本身的功能修改寄存器的值,剩下的功能邏輯實現,就跟單片機無關了,對於你的顯示屏來講,它並不知道你的mcu是什麼,只是它發現出來的信號都同樣,因此用51能夠顯示一朵花,一樣的程序用32顯示也不會變成一棵樹,本質同樣的
相關文章
相關標籤/搜索