【?聲明:版權所有,歡迎轉載,請勿用于商業用途。 聯系信箱:feixiaoxing @163.com】
? ? ? ? 目前市面上的mcu很多,有國產的,有進口的,總之種類很多。以stm32為例,這里面又包括了stm32f1、stm32f4、stm32f7。而且,很多時候,電商網站上面的開發板種類很多,有的資料很多,有的只提供基本程序,那這個時候應該怎么選擇呢。結合我自己的經驗,給大家參考一下。
1、選擇高性價比的mcu
? ? ? ? 很多同學上來的時候,野心很大,恨不得短時間內把所有的mcu知識點都掌握。有了這個想法,買板子的時候直接追求大而全,其實是沒有必要的。我們買過來的東西,如果沒有經過學習、思考,變成自己的東西,買了再多也是無益。目前mcu這部分,stm32f103系列性價比最高,核心板+st-link v2加起來也就幾十塊,個人覺得用來入門是比較合適的。要說其他還需要買的,最多買一個usb轉ttl的模塊即可。
2、第一次編譯、下載很重要
? ? ? ? 和軟件直接在電腦上編譯、運行不一樣,mcu代碼不僅需要在x86 pc上面用keil編譯,還需要st-link v2下載到mcu開發板上面。因此,第一次編譯成功,對于建立開發者的信心很重要。在mcu上面,一般來說,第一個程序就是點燈程序,有點類似于學習編程語言里面的hello-world。編譯之后,就可以直接通過st-link v2下載了。有了這個做基礎,后續就好辦了。
3、下載的時候先erase一下
? ? ? ? 我們在下載程序之后,最好養成先erase,后program的習慣。因為mcu上面的存儲空間是flash,如果要對flash進行重新編程的話,最好先erase,再programe。這樣幾乎不會有什么編程失敗的問題。一般code、read only data都是放在flash里面,stack、global data、heap都是放在sram里面,這一點需要注意下的。
4、下載程序后手動復位開發板
? ? ? ? 很多同學第一次編程,會出現下載后,沒有反應的情況。其實,這個時候我們只需要按一下復位鍵,mcu就可以開始運行了。但是很多同學不知道這個操作,以為自己的程序有問題,殊不知只是因為自己沒有按下復位鍵,才導致mcu沒有按照新的程序來運行。
5、盡快調通串口
? ? ? ? 串口是mcu調試里面很重要的調試、通信方法。有了串口相當于我們知道mcu走到哪一步了,所以打通串口有著很重要的現實意義。此外,一般mcu帶有多個串口,后續其他串口還可以與上位機進行數據的交互通信。找到對應的tx、rx、gnd,這一點非常重要。
6、一定要掌握中斷的寫法
? ? ? ? mcu下面很多的程序都是while(1) + interrupt的寫法,所以我們需要的就是盡快寫一次中斷代碼。這個中斷可以是gpio的中斷,可以是定時中斷,甚至可以是uart中斷,只要是中斷就可以。如果是定時中斷,后續甚至可以以timer為驅動,配合狀態機進行應用開發。
7、慢慢掌握其他接口
? ? ? ? 有了上面做基礎,下面就可以慢慢學習其他接口了,比如說iic、iis、sdio、spi、usb和eth。同樣以spi為例,這個接口可以適配的模塊就更多,能實現哪些功能,很多時候取決于我們外接了哪些模塊,可以拿到哪些數據。
8、開始業務的開發
? ? ? ? 有了上面的開發做接觸,下面就開始業務的開發了。當然,這中間可能還會涉及到rtos、fatfs、lwip、lvgl,不過沒關系,本身用什么學什么的原則,后續就可以開始業務的開發了。簡單一點,可以做數據的采集;后續做一些模塊的轉發;最后慢慢做一些控制和識別的東西,這樣就算真正把mcu用起來了。
9、所有的相關mcu代碼都可以參考
? ? ? ? 我們買的開發板可能來源于一個人,但是其他家的程序我們也是可以參考的,無非就是改一下接口、改一下pin就行,這都問題不大。真的遇到問題了,反而是自己學習的機會。