0、學單片機首先要明白,一個單片機啥也干不了,學單片機的目的是學習怎么用單片機驅動外部設備,比如數碼管,電機,液晶屏等,這個需要外圍電路的配合,所以學習單片機在這個層面上可以等同為學習單片機的開發板怎么用,也就是學習怎么寫單片機上面跑的軟件
1、剛開始學51單片機就可以了,看郭天祥十天學會單片機視頻,網上一大把,跟著學就行了,c語言不會也沒太大關系,學完就會了,注意買開發板不要買跟郭天祥視頻里面引腳一模一樣的,給自己制造一點困難,這樣學到的更扎實,主要就是了解外設如何驅動和單片機的功能寄存器如何配置,如何使用中斷,如何在while(1)里面進行任務調度和時間片分配。
2、然后是學習STM32,更高端一點的單片機,有個叫正點原子的出的教程不錯,跟著學,軟件水平能有很大提升,自己想個項目做,比如智能家居,智能小車,很簡單,做完了就感覺單片機都差不多,差別只在功耗和性能。進階的話可以買一些電路模塊來學習,比如液晶屏,步進電機,紅外,語音,以太網等等,理論上,學習任何一款單片機產品的使用,只要能點亮流水燈(使用GPIO),就算半只腳進門了,剩下的就是學一學那些外設的寄存器如何使用,常見的有UART,i2c,spi,Adc/dac,Dma,usb,以太網,外部總線等等,其中uart就是串口必須掌握,其他用到啥臨時學都可以。當然如果能都掌握也是極好的ヾ ^_^?
3、學習ucos-ii,首先別管里面是怎么實現的,先會用,學會寫task,最后再去了解這個系統怎么實現的,讀一下作者的經典著作,受益終生
4、學習嵌入式linux,linux開發有兩種,一種是在開發用戶程序,比如騰訊qq啥的,這一種與win下面寫程序差不多,也可以使用c++或者java ,一種是開發內核驅動,只能用c寫,比如usb驅動或者攝像頭驅動啥的,這個就分別去學就好了。
linux開發和單片機的開發完全是兩碼事,單片機借用的是底層協議,比如i2c,uart,spi,沒有協議就自己用gpio搞一個;但是linux下面的開發大多是使用通用的網絡協議,這些都是建立在一堆軟件庫之上的,比如tcpip,ssh,telnet,ftp,http等,學linux應用開發基本就是純軟件的,放到哪個linux下面都可以跑,單片機就不行了,與硬件緊耦合。
我連夜給大家整理了一套單片機的學習秘籍,將你從入門級變成大師級工程師,掌握科技的奧秘!評論區給我一個6這份秘籍免費送出!