能在短時間之內做出點東西


stm32啊,單片機的市場佔有率最高。

還有tcp/ip,wifi,藍牙,qt,usb,gps,nb-iot,gsm,gui,實時操作系統,lcd,陀螺儀,加速度計,磁羅盤,氣壓計,攝像頭,文件系統,sd卡等

51學完了,當然是要繼續玩啊,好不容易學完了,不做點東西出來玩對得起之前的學習嗎?

不要著急直接上STM32,單片機的原理都差不多,先做一些自己喜歡的玩具出來玩。

比如基於單片機的智能傢具系統等,然後你會發現電路的知識也需要學習,因為需要打板啊,看著自己打的板回來之後一個一個元器件焊上去最後通過你51的程序燒錄可以運行,也可以用3D印表機把外殼打得精美一點,看看在實際使用過程中你的板子能堅持多久。這個時候就是考驗的你的能力的時候的,到底是硬體設計會不會有問題,軟體有沒有BUG。

這裡我推薦一個小系統的網站https://www.bsdog.cn?aff=eyzvl5

做完一兩個小系統,你就會發現又是一個大世界在等著你,STM32和其他單片機都一樣的,其實也就是32資源多,很多公司會因為成本不會使用STM32的晶元,比如國產的華大,GD32等,其實都是差不多的,原理上會了,就都一樣,不過老老實實選擇一個單片機從頭到尾啃一便就可以的。

玩夠了之後,當然還是靜下心去學習的啊,STM32不二選擇,資源多,你遇到的問題,大家應該都遇到過,網上很好的可以找到答案,之後在做出一些小項目,最好參加電賽檢驗一下學習成果。

12月1號更新

玩過51的大家應該知道,除了一些驅動函數有廠家或者大佬幫你已經寫出來,自己基本上很少會去寫驅動,本次我們更新主要就以驅動函數來給大家說說,當然這部分也可以不用掌握,因為賣給你晶元的廠商一般情況下都會給你寫好了驅動,不需要你自己你去看晶元手冊對著時序慢慢敲了。我們這次就單獨說下ds18b20怎麼寫的吧,網上也有很多,覺得我說的不全面的也可以自己去谷歌/百度都行的。

首先當然是找到數據手冊咯,我一般在下面網站找

打開後我們可以看到我們經常使用的到底是什麼樣的。

大家應該在數據手冊上第一句話能看到是單匯流排器件,這裡不過多介紹,包括數據儲存形態以及介面電路也不介紹了,我們主要看下時序

DS18B20的1-wrie工作協議流程是:

初始化&>ROM操作指令&>存儲器操作指令&>數據傳輸。

其工作時序包括:

初始化時序

寫時序

讀時序

************************************?????

函數:RST_DS18B20?

????功能:複位DS18B20,讀取存在脈衝並返回?????參數:無?

????返回:1:複位成功;0:複位失敗?

????說明:拉低匯流排至少480us?;可用於檢測DS18B20工作是否正常?????******************************************?????*/?

????bit?RST_DS18B20()?????{??????????????????????

?bit?ret="1";?

????DQ=0;/*拉低匯流排?*/?

?? Delayxus_DS18B20(32);/*為保險起見,延時495us?*/???????????

DQ=1;/*釋放匯流排,DS18B20檢測到上升沿後會發送存在脈衝*/?

????Delayxus_DS18B20(4);/*需要等待15~60us,這裡延時75us後可以保證接受到的是存在脈衝?*/???????????

ret=DQ;?

????Delayxus_DS18B20(14);/*延時495us,讓ds18b20釋放匯流排,避免影響到下一步的操作?*/?

????DQ=1;/*釋放匯流排?*/???????????

return(~ret);????

?}

後續的寫時序以及讀時序我們這裡就過多給大家介紹了,主要就是想讓大家看一下,時序圖和程序的聯繫,這裡我們帶大家簡單看一下啊,重點還是點到為止,畢竟學習是自己的事情。單匯流排對吧很容易理解一條線。

DQ=0;/*拉低匯流排?*/?第一步將DQ置為0,將我們的匯流排置為0

Delayxus_DS18B20(32);/*為保險起見,延時495us?*/???匯流排上的主機通過拉低單匯流排至少480μs來發送複位脈衝,我們這裡為了保險起見延時了495秒。

然後匯流排主機釋放匯流排並進入接收模式。匯流排釋放後,4.7kΩ的上拉電阻把單匯流排上的電平拉回高電平。當DS18B20檢測到上升沿後等待15到60us,然後以拉低匯流排60-240us的方式發出存在脈衝。如上所述,主機將匯流排拉低最短480us,之後釋放匯流排。由4.7kΩ上拉電阻將匯流排恢復到高電平。DS18B20檢測到上升沿後等待15到60us,發出存在脈衝:拉低匯流排60-240us。至此,初始化和存在時序完畢。

到這裡我們就不過多介紹了,DS18B20時序詳解-畢設狗 想看的點過去就可以了,不建議繼續看了,直接自己動手寫,看看能不能將驅動這個溫度感測器。

後續瀏覽量或者點贊多的話,我會繼續更新更多你想像不到的東西哦。


51不要停留太長時間,只要你打好了硬體基礎,把單片機運行的底層原理搞明白後就去弄熟通訊協議。這些都搞完立馬就轉戰STM32,去研究演算法,和訓練解決方案思維。單片機玩到死就哪一點基礎的東西。基礎(硬體,C語言)打好後靠的就是你的想法和一系列的騷操作。


瀉藥。題主的目的是為了diy的話推薦粗略了解一下STM32的庫開發模式後。熟悉一下數模電知識。然後買一些感測器模塊(例如超聲波。攝像頭。紅外。磁感應編碼器之類的)。 自己實現一下它們的驅動。搞著玩玩。這樣很快你就可以自己實現一些小東西了。什麼循跡小車。 六足。 都只是時間問題。

但是,如果在學習的過程中你考慮職業發展方向的話。 就推薦你先了解一下自己希望從事硬體還是軟體方向。 硬體的話。進一步強化數電模電知識。 了解FPGA。之類的硬體技術。 做一些功放。開關電源之類的小玩意。對以後就業很有幫助。 (我是軟體方向。 這是身邊朋友的人發展方向)如果是軟體。 那就可以開始了解數據結構。Linux內核實現。 驅動實現。通信協議。 鞏固C/C++。試著買一塊開發版移植內核。 改改驅動。了解軟體架構。等你能夠用交叉編譯在嵌入式系統上搞點簡單的玩意兒了。 那你也算可以理直氣壯的進入物聯網。嵌入式行業了。
stm32+模電數電基礎+PCB畫板+LABVIEW。這幾樣學會了,自己進行一些電子製作,或者是參加本科的各類競賽基本上夠了。當然了,stm32涉及到各種通信協議,演算法設計,更高級的還有系統的移植、UI界面的設計,要弄精通還是很不容易的。還有PCB的設計,需要較好的電子電路的設計基礎,模電一定要學好。stm32軟體部分或者是電路設計的硬體部分,能熟練使用一樣,都挺不錯的了。可以自己選擇發展硬體還是軟體方向。如果想走軟體,之後還可以繼續學習LINUX+ARM,或者信號處理一類的(matlab+DSP)。走硬體的話,可以深入學習FPGA(這個必須有非常好的數電基礎)。
推薦閱讀:
相关文章