上課不聽講下課來補習系列之-玩轉單片機STM8(二)

現在學習STM8,由於ST已經提供標準驅動庫函數,對C語言能力要求已經很弱了,只要上過大學C語言課程,都可以進行編程。
但是我建議大家把C語言學深點。它的核心就是指針,玩轉指針,就玩懂了C語言。它的其他功能和其他語言沒有任何差別。只是邏輯控制而已。能把C的指針真正弄懂,你還不得不學習一下機器語言,萬變不離其宗。見多識廣,千萬不要懷疑自己大腦的記憶能力,也不要認爲多學會學混,我的經驗是,學得越多,只會讓你你看得更明白。
STM8系統的機器指令的長度是8位的。固定長度,你可以大致看看每個Bit是什麼意思。這都是工程師精確設計的,也是人設計的。別人能做到的,你爲什麼不行?多問問自己。
機器指令的介紹,一定會花大篇幅介紹尋址。你可以想象,機器世界裏,你的資源,其實只有內存和寄存器。內存是靠地址的,才能知道訪問的是哪一塊,而寄存器就是靠唯一的名字訪問,當然外部設備的地址,也是靠地址訪問。所以可以推斷,機器指令手冊,必須介紹,如何把寄存器的內容搬移到內存,或者如何把內存特定地址的內容搬移到寄存器。更有可能你是期望把直接的一個數字放入寄存器。等等的各種組合。不是任意一條連線都是被允許的,一般都不會支持直接把一條內存,搬移到另一條內存。中間需要寄存器暫存一下。等等的規律,你讀多了自然會懂。
不過上手STM8不需要懂這些,一樣可以玩。它內置bootROM,一啓動,當跳進你的main函數時,該做的初始化已經完成,你直接可以開始操作GPIO了,clock如果沒有額外需要,不需要配置,內置的16MHz的晶振,默認8分頻,2MHz用來跑core,也就是運行你的程序。STM8L151K4T6最小系統板,我會提供一個最小的工程文件,裏面包含一個操作GPIO的代碼,也就是讓開發板上的 LED燈點亮,並且閃爍。基本的邏輯是拉高,拉低交替,中間加延時,這裏的延時,用的最簡單的的死循環delay,代碼邏輯簡單,就是不夠環保。死循環是靠電耗換來的,但是這種代碼有時候也是必要的,上MHz的CPU,運行每條指令都是ns級別的,如果你需要的delay也是ns級別的,那麼死循環確實就是最好的選擇。

發佈了137 篇原創文章 · 獲贊 16 · 訪問量 49萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章