著名嵌入式工程師吳堅鴻曾經發(fā)過一貼“學單片機有前途還是嵌入式系統(tǒng)有前途?”原貼如下:
我在深圳一直搞單片機的開發(fā),接的項目各種各樣,不計其數(shù)。很多朋友問我學習單片機有前途還是嵌入式系統(tǒng)有前途,毫無疑問的,當然是單片機有前途。
嵌入式系統(tǒng)現(xiàn)在炒得很火,滿街到處都是嵌入式系統(tǒng)的培訓。遇到很多剛入門的朋友,開口閉口都是嵌入式系統(tǒng)。好像覺得嵌入式系統(tǒng)就是武林秘訣,誰掌握了誰就是武林盟主?,F(xiàn)在,我愿意公開我的獨家心得跟大家分享,看了之后有收獲的朋友,也不要感激我,只要記得這個文章的原創(chuàng)是吳堅鴻就可以了。目前的電子產品,用嵌入式系統(tǒng)的很少,大部分都是用單片機,因為單片機實時反應速度快,外圍電路簡單,價格便宜,開發(fā)周期短,這些都是嵌入式系統(tǒng)望塵莫及的,不要跟我說什么手機,PDA等東西是嵌入式系統(tǒng),這些東西你能獨立承接出來單干嗎?大部分的朋友學了嵌入式系統(tǒng)后都無用武之地,空有屠龍之術。
即使有用武之地,那也要跟團隊一起開展工作,跟團隊開展工作,就意味著分工,一旦分工,就意味著流水線作業(yè),單一,乏味,成就感有木有。學嵌入式的不一定比學單片機的厲害。單片機簡單嗎?一點都不簡單。單片機的功夫在單片機之外。我搞這行那么多年,我覺得單片機是我這一輩子都學不完的。單片機不帶操作系統(tǒng),所以你寫單片機程序,本身就意味著你在開發(fā)操作系統(tǒng)。嵌入式帶操作系統(tǒng),所以你寫嵌入式程序,本身意味著你不用開發(fā)操作系統(tǒng),只是在別人的系統(tǒng)上做一些應用開發(fā)。真正接觸底層的,是搞單片機的人。不要以為你花一個月的時間就能精通單片機,我花十年都不會覺得我精通單片機。里面博大精深。你要掌握常用的不同廠家單片機,要掌握各種常用外圍芯片,常用數(shù)字電路,模擬電路。你要還掌握CPLD,DSP的編程,你要會電路板設計,你英文閱讀能力要好,你的學習能力要非常好,以上所有的都還不夠,你必須有幾年以上各種獨立的項目開發(fā)經驗。最后談談大家最關心的問題,學習單片機賺錢還是學習嵌入式賺錢?學習單片機,只要你技術過硬,一個筆記本電腦,再加一個農民房就可以在深圳單干,我就是這樣過來的。學習嵌入式系統(tǒng)的,可能要依附大公司,如果你也出來單干,估計半年沒接到一個單,即使接到單,如果開發(fā)周期三個月或者半年的,你要有充足的糧草儲備。我覺得單片機開發(fā)是藝術,我做的每一個作品都讓我充滿成就感。最后奉勸所有搞技術的年輕人,做一行愛一行,不要急功近利,做好每一天的的工作,沉下心來,時間越久,經驗越豐富,你就越牛。
其中引來眾人的熱議,希望可以為大家作為參考(粉色部分為吳堅鴻回復部分):
很少有資深的工程師談談自己的感想的(可能我沒找到,有知道的給我推薦下哈...不甚感激),給我們些啟發(fā)!頂頂...?——(1)如果你是在校生,除了多動手做實驗外,專業(yè)基礎課要重視,硬著頭皮學,能學多少是多少。因為出來社會后就沒有那么多時間去學基礎課?;A課是最難學,也是最乏味的。真正搞單片機開發(fā),入門是簡單的。(2)如果你現(xiàn)在已經出來社會,那么就直接從C語言開始學,會編寫簡單的程序后,馬上找單片機開發(fā)的工作,不管工資多少,管吃就行。至于用什么教材,我上個星期在幫朋友找教材的時候,看了網(wǎng)上郭天祥的《十天學會單片機》的視頻第一課,感覺學習思路跟我是一致的,所以極力推薦。本人在此聲明,如果我是郭天祥的托,天打雷劈,不得好死。
很少有在社會上打拼這么多年的 吧,不知閣下的單片機事業(yè)怎么樣,可否分享一二?謝謝了——我的算不上什么單片機事業(yè)。但是我自己還是特別滿足我現(xiàn)在的狀況。我是自由職業(yè)者,喜歡電子,一直在外面接不同的開發(fā)項目,也有許多公司或者老板想招安我,我都一一謝絕。因為我過貫自由創(chuàng)作的日子,喜歡做不同領域的產品,我也喜歡每個月搞一兩個項目,然后回廣西老家跟家人團聚共享美時光。做技術開發(fā)我有我的原則,不搞破解別人程序的項目,不搞違法的項目(類似賭博機,給我再多錢我也不干)。
我也同意樓主的觀點,從不同角度看確實有不同的結果
如果志向高些,或者目標長遠些,單片機能達到的高度還是有限
但一般這類人學嵌入式之前都會學過單片機——一般這類人學嵌入式之前都會學過單片機”這個觀點我也認同。我只是覺得如果不是工作很明確的需要,大部分的人學嵌入式都用不到。
我要開心學習每一天,減少與你們的差距...——你的學習心態(tài)不對。不要跟誰比,關鍵你要有這個興趣,你在享受這個開發(fā)的過程。“心中無敵方能無敵于天下”。==馬云語錄 “無為就是有為”?---老子的《道德經》
?
“我覺得單片機開發(fā)是藝術,我做的每一個作品都讓我充滿成就感?!边@句話,我也很喜歡。。。但是我說個例子,現(xiàn)在不是有l(wèi)abview嗎?而有的單片機可以進行l(wèi)abview for ARM 嵌入式移植,我想應該可以更加節(jié)約時間吧——?單片機做的事情要盡量簡單,速度要盡量快,成本要盡量低,開發(fā)周期要盡量短,這個才是單片機的獨到之處。裸機跑的單片機比帶操作系統(tǒng)跑的單片機效率要高。帶操作系統(tǒng)的單片機實戰(zhàn)中用不到。 現(xiàn)在大三了,時間還算充足,想畢業(yè)前把把電子的基礎好好打一打,但是現(xiàn)在我的情況是幾乎不懂電子,本科只淺顯的學了電工學 電子學 單片機原理。我現(xiàn)在不知道要學什么,請前輩指點。也請前輩就我的汽車專業(yè)給我點建議,謝謝前輩了。 其他同學或是前輩要是有建議,小弟洗耳恭聽——?(1)我不建議過多的關注未來,不建議過多地規(guī)劃未來。未來不是你能控制的。多享受當下的生活學習比什么都重要。多聽聽內心現(xiàn)在想做什么,喜歡做什么就做什么?! ?2)大部分的創(chuàng)新都來源于生活,有創(chuàng)新靈感的人,往往是那些享受生活的人,好的創(chuàng)新也是服務于生活。所以遠大的理想還不如多關注一下自己現(xiàn)在的生活過得是不是有樂趣,遠大的理想還不如現(xiàn)在多陪女朋友逛逛街,遠大的理想還不如現(xiàn)在多抽時間回家陪陪父母。 (3)無論你現(xiàn)在學機械還是電子,都不意味著你以后有機會接觸機械或者電子,更加不可能精確到你現(xiàn)在學汽車電子,你以后就能做汽車電子方面的研發(fā)。這個是命,不是你我所能控制的。 單片機的功夫在單片機之外~~~~~頂啊頂~總結下就是單片機適合單干,嵌入式適合團隊,完畢!——?不僅僅如此。嵌入式的業(yè)務不會很多,即使有,估計都是以公司為單位承接的。而單片機的業(yè)務量卻很多,我每個月都有做不完的項目。大部分的老板,只要單片機能做的,當然首先是考慮單片機的,因為成本,開發(fā)周期,穩(wěn)定性都比帶操作系統(tǒng)的要好。什么情況下單片機不能做,在彩屏顯示等需要復雜界面的情況下,而這個時候,老板還有兩個選擇,一個是單片機加電腦上位機,另外一個才是嵌入式。而正常情況下,老板會優(yōu)先考慮第一種方案,其次才是嵌入式加TFT彩屏或者觸摸屏。所以,我把搞嵌入式簡單等同于搞電腦編程的,事實上,搞過嵌入式的,大部分都贊同我的觀點。 呵呵。我也是工作多年的經驗感慨,之前是做VC開發(fā)的,在有名的企業(yè)也干過,只是中國做軟件的行業(yè)太不規(guī)范了,青春飯,看著之前公司的那些真正的軟件高手30好幾了都還啥都沒混到還是個光棍,真的是備受打擊。。沒辦法只能轉行?!,F(xiàn)在也有了些單片機和嵌入式的經驗,但是也只是從程序方面去考慮這些項目,確實自己現(xiàn)在還是很不專業(yè)。前些時間去面試了很多公司,感覺一般做汽車電子,軍工,通信,普通民用產品(比如美的)這類公司可能對單片機要求多點,因為可能考慮成本,實時性,穩(wěn)定性方面的要求。但是一般做項目型的公司(就是從客戶手上拿項目,或者是做特殊產品賣關系戶),人家就不要搞單片機的,直接上ARM系統(tǒng),能夠把東西堆出來就行,確實感覺也是像樓主說的那樣,這類公司不專業(yè),沒前途。因為是做關系客戶,做的產品也不夠好,能夠應付過去就行了。。。。 但是我現(xiàn)在也還是有個疑惑?!,F(xiàn)在也有很多同事是搞單片機的(51系列),跟他們聊天,包括網(wǎng)上看到的一些內容,感覺搞這個的也貌似沒啥前途,做硬件的3年工作經驗的比做軟件3年工作經驗的拿的錢少多了,我估計應該也是他們走的路線走錯了。像樓主您這種層次的,說實話我真沒見過,也不知道是咋樣成長起來的。樓主能介紹些技術成長路線么?具體性的指點下我們這種想轉型的菜鳥。。比如進哪類公司好,做神馬行業(yè)好,看神馬書好,學神馬具體技術好....大概要花多長時間的成長期。。 弱弱的問下樓主,進工廠做這個,好么?——謝謝你的關注。要解除這些疑惑,首先要弄清楚公司的本質。有兩種公司,一種是做量的公司。另外一種是做設計的公司。
做量的公司,永遠都是以市場業(yè)務為核心的,在這樣的公司里名義上是做單片機開發(fā),實際上是做維護或者技術支持,好一點的就是做做產品升級,一年之中能有一個新產品讓你開發(fā),就已經很不錯了,在這樣的環(huán)境里,換成誰,誰都覺得單片機沒前途。
設計類的公司,老板肯定也是這一行的技術牛人,他在開公司的時候就想到了,把你們都培養(yǎng)成技術牛人,如果以后給不了滿意的薪水,你們遲早要自己出來單干,很糾結,怎么辦?鐵打的營盤流水的兵,要么就不開公司,要開就要設計好合理的分工制度。分權才方便管理嘛。因此把公司分成家電組,工控組,醫(yī)療保健組,汽車電子組,安防組,消費玩具組,等等,然后又把技術人員分成軟件工程師,硬件工程師,測試工程師。當然,接項目談價錢等核心肯定還是老板牢牢捉住。編寫程序的時候,公司肯定會要求按照固定的模式來操作。變量命名要統(tǒng)一,每一行代碼要有中文注釋等等,無論以后誰來都能接手。在這樣的公司里上班,技術會有一定的積累,但是客戶資源沒有積累,空間還是有限。
綜上所述,進公司上班只能是暫時的,想一輩子在別人的公司里有作為,是不可能的。技術成長路線很簡單,就是接項目做,不斷地接項目做,在實戰(zhàn)中積累經驗,豐富你的資料庫,積累你的客戶資源,積累你的行業(yè)口碑。
怎么樣才能接到項目?當然是利用互聯(lián)網(wǎng)來多發(fā)布廣告,可以在58同城,趕集網(wǎng),好喇叭,兼職網(wǎng)等網(wǎng)站發(fā)布免費的廣告,自己也要建一個對外宣傳的個人網(wǎng)站,500元左右就可以搞一個,很劃算。當你的項目越做越多,老客戶與相關的朋友就越多,以后這些老客戶給你的項目,你都做不完。我現(xiàn)在基本很少發(fā)廣告了,因為很多熟人會幫我介紹。 找單片機開發(fā)的工作難啊,要本科,要幾年的工作經驗,像我這樣剛出大學的??粕楹我钥鞍?span style="margin:0px;padding:0px;max-width:100%;font-size:16px;color:rgb(240,0,240);line-height:25.2px;">——不怕。我就是大專畢業(yè)的,畢業(yè)于桂林航天工業(yè)高等??茖W校,現(xiàn)在改名為桂林航天工業(yè)學院。我還認識一個在廣州搞單片機的絕世高手,他叫林文,中專畢業(yè)的,他一年賺幾十萬,買車買房,老婆小孩都有了,才30多歲。事實上,等你接項目做的時候,沒有人會關心你的學歷,人家只在乎你的技術。我最近找了一個合伙人,他是初中畢業(yè)的,??我現(xiàn)在要帶他從零開始學, 他很有學習的欲望,我很相信他學好單片機一點問題都沒有。我這個初中畢業(yè)的合伙人,他之前是在工地做包工頭的,現(xiàn)在32歲了,照樣從零開始跟我學單片機。 PLC與單片機呢 有什么區(qū)別于未來前景——PLC內部就是由單片機做成的一個產品,用在工控大型設備上比較多。PLC能做的,單片機都能做,單片機能做的,PLC未必能做。單片機比PLC便宜多了。如果你現(xiàn)在還是在學習階段,還不能明確未來工作是不是要用到PLC,那么,毫無疑問,學單片機絕對比PLC更加有前途。如果以后工作崗位上要用到,到時候再學PLC,也不會很難。 樓主你接的項目一般都是什么?——工控,儀器等項目比較多。以前還幫別人做過上位機開發(fā),不過最近,我不接上位機開發(fā)的項目了,我只做自己最擅長的部分,電子電路,也就是單片機這部分。
前輩 ,你是從什么時候開始學習單片機的?我現(xiàn)在三十歲,學習單片機會不會年紀大了?——不會。我的合作伙伴今年32歲,初中畢業(yè),照樣從零開始學。江民軟件的創(chuàng)始人,38歲才開始學計算機編程,關鍵看你的學習能力與態(tài)度?! ∥以趯W校的時候就開始學單片機了,而且當時我是我們專業(yè)里單片機最厲害的。畢業(yè)設計的時候,我是為數(shù)不多,真正做出實物來的學生。然后一畢業(yè)剛好就找到搞單片機開發(fā)的工作,我算是比較幸運的。想想我以前專業(yè)的同學,82個人,目前只有兩個人搞單片機的,一個是我,一個是我的徒弟。 我也有個兄弟在深圳搞單片機,不過好久沒聯(lián)系了。我想哪天我也去深圳玩一玩,拜訪一下吳總你,不介意吧?——我沒你想象的那么高大,我就是一個自由職業(yè)者,稱不上吳總,別人都叫我小吳。我在網(wǎng)上可能比較活躍,平時是比較內向的,大部分時間都是自己關起門來搞電子。如果不是業(yè)務關系,你那么熱情來拜訪我,我真的是有壓力,為了避免你對我的這種好感“見光死”,你還是別來。我還是要謝謝你那么看得起我。 我們要參加比賽,一放暑假十幾個人都跑光了, 我一個女生每天去實驗室學單片機,從零開始,前途一片迷茫。——女生學單片機,很少,支持一下。 學校來了好幾家嵌入式培訓機構,鼓吹我們都去學——在學校,基礎與動手實踐是最重要。對于電子專業(yè)來說,如果單片機還沒學好,就去學嵌入式,真是不應該。 學什么都一樣,最主要是腳踏實地的學,。樓主能推薦點相關的英文資料嗎?我覺得專業(yè)性強一點的英文資料很欠缺——要相關的英文資料干什么?如果是為了單片機而學英語,那么到處都是英文資料,隨便下載一些IC的資料來閱讀,不懂的就在百度上翻譯。我以前讀書的時候,是過了英語四級,出來工作之后,因為要看IC資料,一開始的時候,閱讀還是很吃力,不過我凡是遇到不懂的單詞,都會馬上在百度上翻譯看懂,雖然速度有點慢,有時候看懂一個IC資料,要花三四天時間,但是我堅持下來兩三年后,閱讀就不成問題了。關鍵還是要有耐心與堅持。 說的好,想當個體戶就學單片機,單片機硬軟并重,嵌入偏軟件——。精辟。嵌入式其實就是PC編程,跟電子沒什么關系。是屬于兩個不同的領域。搞電子的發(fā)展方向不應該是嵌入式。 |
樓主,我是一名即將大三的學生了,學的是通信專業(yè),和電子有點關系。最近在看郭天祥的書自學51單片機。也算是進了個門,但是我有個疑惑想請問樓主。就是怎么樣在學校把理論基礎的東西學好?我們現(xiàn)在學校開的課好像什么都涉及一點,我們有學過數(shù)電、模電、信號與系統(tǒng)、通信原理,下學期要學dsp、圖像處理、eda、通信電子線路、電磁波、信息論等等。。關于這些理論的課程我都需要一一用心地去掌握嗎,還是要用到的時候再去學習?上學期一直都在自學tcp/ip(因為當時沒找到方向,所以隨便先學點東西),幾乎所有的課都沒去上,而且tcp/ip也沒學得怎么樣,現(xiàn)在打算以后往單片機、硬件這方面發(fā)展,專搞硬件有空也自己弄弄程序、軟件。但是聽樓主的話還有網(wǎng)上的帖子都有說到要把理論基礎打扎實,但是就是不知道怎么走這一步,什么理論應該深入,什么不必深究,這一點我實在很費解(習慣了逃課自學,課堂上的東西的確難以吸收,我怕像上學期一樣逃課結果會什么都學不了,但是專心理論的學習我又會沒時間學好單片機)。還有樓主說高數(shù)要學好,我高數(shù)很爛。。不知道要怎么學好高數(shù),工程數(shù)學這些也算是高數(shù)嗎,要學到什么程度才可以把單片機和這些理論東西結合起來呢?思緒有點亂,望樓主能解答一二?!?/span>(1)問:就是怎么樣在學校把理論基礎的東西學好?答::只要上課認真去聽,能聽多少就多少,考試能夠80分就夠了。(2)問:我們現(xiàn)在學校開的課好像什么都涉及一點,我們有學過數(shù)電、模電、信號與系統(tǒng)、通信原理,下學期要學dsp、圖像處理、eda、通信電子線路、電磁波、信息論等等。。關于這些理論的課程我都需要一一用心地去掌握嗎?答:不需要。點到為止。還是那句話只要上課認真去聽,能聽多少就多少,考試能夠80分就夠了。硬件電路也不是你在學校一下子就能夠掌握的,要以后在做項目中慢慢積累,慢慢消化。但是單片機,C語言是戰(zhàn)略高地,你只要占領了這個高地,你就有了向外圍電路擴展的資本。你不是說你看過郭天祥的書嗎?你也可以看看他網(wǎng)上的《十天學會單片機》的視頻,超級經典。我當初就看了他的第一課,他說了一句超級經典的話,頓時讓我覺得他是單片機教育普及的第一人,大意是,先掌握單片機與C語言,“以后缺什么補什么”,這個雙引號里面就是他的原話。
其仔細看了chenyao3612和吳堅鴻在《吳堅鴻談學單片機有前途還是嵌入式系統(tǒng)有前途》一貼中的對話,chenyao3612也是一個十分堅持和有韌勁的電子學習者。他因為看了吳堅鴻的帖子,就講述了自己學習的一些經歷,我相信他的分享能夠給很多電子學者一些啟發(fā)。很多時候學習并不是一件很簡單的事情,在學習中我們也有迷茫和看不到方向的時候,但是關鍵在于你是否能夠像chenyao3612一樣堅持下去。我一直都相信,人生不管是什么,都是一種學習,只要經歷了,就是學習了;學習的話,不管你學什么,你都會進步,你知道了你以前不知道的東西,這就是一種進步。下面先是chenyao3612的講述,之后有吳堅鴻的回復。
看了半天。終于從第一頁看到了現(xiàn)在。我以前是學機械的。畢業(yè)了一直打雜,開車床,還不是數(shù)控的。
我為什么想學電子。
發(fā)現(xiàn)搞機械很不受人尊重,人人覺得機械不就那點東西。(其實我覺得機械比什么都要深奧。只是中國不重視基礎,不重視基礎材料。所以永遠差日本德國十萬八千里)。再就是現(xiàn)在國內懂電子的基本不懂機械。懂機械的基本不懂電子。我想會機械又會電子。所以我想學電子。所以我從去看五月份就開始在網(wǎng)上摸索,因為我高中物理學的還比較好。。對基礎知識理解還比較清楚。所以雖然不專業(yè)。但總能說出點大概的味道來。譬如說什么信息傳輸。除了有線的?;揪褪遣?分為機械波和光波)。所有的東西都離不開這個東西。什么測距啊。什么無線電啊。什么光啊。所以我自認為我的理論還比較清晰。并且和比較喜歡這些基礎的原理(雖然不能從專業(yè)的角度很懂,但我能從物理角度有自己的理解)。并且我覺得這些東西很重要。對以后開發(fā)項目很有幫助。對各種傳感器能更好的理解。這些東西我只能理解但總不知道應該怎么去學電子。
去年我遇到一個貴人,我很喜歡和他談這些大道理,基礎知道原理。再就是把自己的想法也告訴他。他就問我,你說你想學,你到底想學什么?你總不能說什么都想學,你想學硬件還是軟件?我說我什么都想學。我想學硬件也想學軟件。什么都想學。想學電子想學機械。想學心理學。想學管理。他說好吧好吧。不管你以后想學硬件還是軟件,你先學單片機吧。你可以先從51單片機學起。 那是去年的五月份。那說了那樣的話給我。我那時什么叫單片機都不知道。在我心理一直以為硬件就是收音機數(shù)模電路。軟件就是電腦。這是我去年的理解。但我現(xiàn)在回想學的又可笑,又有點道理。 從他說那些話給后。那個星期的周末我就去書店買了本21天學通51單片機。因為那書店里計算機類里關于單片機的書真的不多。。都是些高級的。很高深的東西。當時是那么覺得。?,F(xiàn)在還是那么覺得。。。買了那本書后。我那一個月就天天看前面單片機的內部結構。和后面的中斷,計時器。 重點還是單片機結構。再就是看了一點點匯編的操作指令。因為你懂一點點內部結構了再看匯編的指令感覺還算比較好理解。因為中斷和計時器。我覺得有理解了。但是那些寄存器太多怎么都記不住啊。所以沒看了。再就是中間的C51我一點都沒有看。看啊看啊。迷迷糊糊的看。開始一點看不懂。再看第二遍。再看第三遍。再看第四遍。一個月后。終于有點點懂了。
當時只看前面的單片機結構。和后面的中斷,計時器。重點還是單片機結構。因為中斷和計時器。我覺得有理解了。但是那些寄存器太多怎么都記不住啊。所以沒看了。再就是中間的C51我一點都沒有看。(現(xiàn)在才發(fā)現(xiàn),其實很個單片機都是不同的。)。好吧開始自己動手做程序了。就想學一門語言啊。。就在網(wǎng)上搜啊搜啊。有說先C的。有說先學匯編的。因為我覺得學東西就要從老東西學起。什么新東西不是老東西抽象來的。。所以我選擇了匯編。自己就天天看匯編啊。。又看了一個月。完全是看書。還是沒有操作過。 二個月就這么過去了。又開始迷茫了。就在網(wǎng)上搜啊找啊。終于知道了什么叫ISP,什么叫仿真,什么叫仿真器什么叫開發(fā)板。。好吧。為了學東西錢算什么。花了兩三百買了個開發(fā)板和仿真器。電子發(fā)燒友電子的。但是還是不能動手。最多點兩個燈。。所以搞來搞去就是會幾個跳轉。會讓P1.0=0//燈亮了。P1.0=1//燈熄了。一兩個跳轉還好。。要是有三四個跳轉自己就頭都大了。唉,又買了本王爽的匯編語言,天天看,天天看。還跟著在DOS里面操作。媽的,這個東西也太基礎了點吧,我覺得這么下去不是個辦法,再就是發(fā)現(xiàn)怎么說的和我以前在21天學通51單片機里說的有點不同。不管是匯編語言,還是CPU,RAM,ROM結構。 我又開始想了。。后來才搞明白。原來王爽的這本書匯編是X86,我以前那個是8051.。操。完全兩個不同的東西啊。我是學單片機的。不是學寫QQ應用軟件,或者什么驅動的。我現(xiàn)在這點皮毛都沒有怎么可能理解那東西。。方向應該錯了,馬上又停下來了,再不停下來和我以前看的21天學通51單片機要渾了。頭都大了。。。。。。
三四個月又過去了。。。這半年自己還是邊在開車床,邊在網(wǎng)上搜,什么是單片機,什么是三極管。什么是運放。 轉眼到過年了。什么都不會。 又遇到那個貴人了。。他問我學的怎么樣??我說學到很多東西啊。 他說能做什么東西了沒?我說不能。就會點燈。他說你要試著做點復雜的。。我說好吧。??墒怯植恢涝趺聪率?。。。。但聽說做東西的時候會學到很多東西的。。我就硬著頭皮。可是再硬著頭皮也還只是會點個燈而已。程序循環(huán)兩下就暈了。。好吧。。。我又要開始思考了。。//*************這里我特點建議在求學的道路上迷茫的人啊,當你們迷茫的時候不能放棄,在學什么東西還是接著學,重點來了,這時就要把自己抽離出來。要把自己當一個局外人。。站在一個很高的平臺想自己的處境。********************// 當時我就把自己抽離出來。又開始想問題了。。當時就想程序肯定不是這么寫出來的。媽的那么復雜。誰搞的明白啊。就算花結構圖也畫不明白啊。。肯定得學門高級語言。別人說高級語言什么結構什么模塊的。應該那樣才有頭緒。 好吧我又買了本譚浩強的C語言。。媽的,好難看懂啊。。就像高中的教材書一樣。。慢慢看是看的懂。。但懂了又怎么樣? 天天算加減乖除那又是個什么意思? 真真假假,假假真真 再就是什么數(shù)據(jù)什么算法,什么運算符,什么表達式。。。。這些有什么意義啊。。這下又迷茫了。。又在網(wǎng)上查這個查那個。。他*的。??吹揭粋€廣告所以又買了個學習資料。。。里面有視頻。。。說什么從萬能板學單片機。。。又看了一個星期。就學會了在外面接晶振。。再就是教你怎么下載了他寫好的程序??梢杂幸魳?。。。其實這些我以前就會了。。好吧再接著往下學吧。。開始講C51了。。??墒且稽c聽不懂。。 。我就翻我電腦里的東西。。不小心翻出了一個好東西。。這時就到了2012年7月份。就是前半個月。。。。原來第一個開發(fā)板送的光盤里里有個 郭天祥的十天學會單片機C語言。。。。終于原來就是這么簡單。。他講的我竟然都聽的懂了。。為什么。。。為什么我也不知道為什么。。是他講的好還是怎么了?確實是他講的好。傻子都能看明白。。。但這時我又想了一個問題如果我不是因為前面我看了匯編,我會這么容易看懂了。我想我不能。。。原來WHILE IF FOR就是匯編里抽的JNC JMP等兩三個指令組合的。。。這時我豁然開朗了。。。。。 這半個月來。我看視頻十了。在我看到視頻五的時候我辭職了。找了一份很輕松的工作。在一個電子廠做流水線的事。一天六個小時。工資很低,一個月一千塊錢。我知道我要的是時間。我要的是接觸電子。我要的學會用烙鐵。我要的是學會認各種基本元器件。擬我什么都不管了。。。。。
因為以前的機械天天加班沒時間學東西。再說也不是一個行業(yè)。。再說我覺得我自信我已經能自學了。我已經入門了。。。我會寫程序了。。我掌握了LCD1602。 原來一切就是這么回事。。。什么IIC協(xié)議(這里說一下,我覺得IIC協(xié)議很重要,很多東西都是IIC協(xié)議或者是類似的人為定的協(xié)議。就像前面樓主說的那個三個單片機通信的問題。其實就是IIC協(xié)議的DIY。雖然沒有真正的搞懂,也不會。但我是這么理解的。) 我現(xiàn)在要做的就是學精C語言的語法,學精通51單片機。試著去驅動一些IC。 我現(xiàn)在就在過著這樣的生活。。白天上班。。晚上看周天祥??碈語言基礎,,把語法規(guī)范。。(這時候看的懂C語言了)。
------------------------------------------------- 好吧。我把我摸索的過程在這里和大家分享到這里。。我覺得我每一步都走的很曲折。。但是我覺得真是這每一步曲折才讓我到現(xiàn)在這個狀態(tài)。我想要的狀態(tài)。。我現(xiàn)在對硬件,軟件,MCU,windows,嵌入式也有了自己的理解。。所以我來發(fā)表一下我的兩個觀點:
1.如果你想真正的學東西,想學精,想學的長遠。還是先學匯編再學C。雖然學匯編有點難。但是你花兩個月時間,就像我去年五六月份一樣的。了解一下單片機結構和匯編語言。如果你只想玩一玩不求甚解的話就直接學C吧。。但我警告你學了C再學匯編就會覺得很難很難了。我不知道為什么。。反正網(wǎng)上別人學了C的再學匯編的人都這么說。。。說太難了。不要學。。但我當初什么都不會的時候都覺得匯編很簡單。。。只是編不了大程序。。。但會點燈。。。。想點哪個就點哪個。。。要誰亮誰就亮,要誰熄誰就熄。。。。
2.先學單片機不要學嵌入式系統(tǒng)。單片機和嵌入式系統(tǒng)的關系就和匯編與C語言的關系一樣的。。所以樓主的所有觀點我都支持,贊同,頂。但是樓主說不要學匯編我就不能理解了。那你為什么又要人家學單片機不要學嵌入式呢????在我大腦里。你對知識對真理的看法是矛盾的。
其實很多人都很難入門,入門了就好了。其實很多人就陪MCU和CPU的關系都不知道。就連寄存器和存儲器的關系都不知道。就連RAM,ROM的區(qū)別都不知道。就連I/O口與寄存器的關系都不知道。所以我建議從零的入門步驟是先花一兩個月學51單片機內部結構和匯編。一定是51單片機的結構。和針對51的匯編。因為匯編有很多種匯編。單片機有很多種單片機。會了51.其它基本就會了。但就是因為大同小異的異。當一點都不懂的人遇到了這些不同的單片機頭就會大。就會迷糊。所以一定是學51單片機的結構。和針對51的匯編。學到什么程度呢。能點燈就行了。。不要學的很精。。然后就是周天祥的十天學會單片機C語言。。。OK。。你就到我這個水平了。。。。我的水平就是小學一年級的水平。這半個月來我只會驅動1602CD。視頻里的一些視頻因為我是電子發(fā)燒友電子電子的開發(fā)板。所以有點不同。試驗基本都做不了。。。但我覺得我能做好。。。因為1602還是被我整會了。。這里還有點建議。。。去學外圍的IC的時候什么都是假的就是看IC的手冊??磿r序圖。時序圖很關鍵。
-------------------------------------------------唉。其實知識原來都很簡單的。就是被人一層層的抽像了。所以我們就覺得好難好難了。。從麥克思維方程抽像出元器件。從元器件抽像出數(shù)字電路和模擬電路。 數(shù)字電路抽象就到CPU了。再抽象就到計算機了。高低電平抽像就到了0101. 0101抽象就到了匯編。。匯編再抽象就到了各種高級語言。一切都是抽象,一切都是浮云。。。。。。要藐視一切知識。要重視一切知識。非淡泊無已明志,非寂靜無已志遠。。樓主很寧靜所以可以志遠。但是把錢看的太重。非淡泊,所以無法明志。
樓主教個朋友。希望你能加我QQ290314786.太我學習的道路上指點一下我。。我不會拿一些具體的問題來問你的。我只是想有時候我有我的一些理解我想問一下你我理解的對不對。我不會拿一些具體的問題來問你的。我只是想有時候我有我的一些理解我想問一下你我理解的對不對。因為這對我很重要。。。再次謝謝。吳工,搞技術的人是相吸的, 先說到這里。我要拉屎了。我要吃飯了。 吳工。吳總。吳師傅一定要加我啊。不然我會很失望很遺憾的。。。。。。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ——chenyao3612的觀帖感悟
我很感動,看到你寫了那么多東西給我,我仔細全部看完了。你這個回復很有參考意義,會給后面很多新人啟發(fā)。你的觀點我都認同,因為我們的學習體會都很相似。你提到“樓主說不要學匯編我就不能理解”,我當初說這句話的時候,只是想告訴大家一個信息,真正做項目的時候還是要用C語言,一旦用了C語言,單片機看起來就沒有那么復雜了。你對匯編語言的理解很不錯。我當時在學校的時候,一開始就是專門學X86的匯編,當時我就想,這個東西有什么用。最后一個學期,才學到單片機,當時就是用匯編來教學的,我那時候還不知道C語言也可以編寫單片機的程序。正因為一開始用匯編教學,我們班里除了我和少數(shù)幾個人之外,大部分的同學都沒有堅持下去。我們學校的實驗室里面的設備,沒有仿真器,沒有燒錄器,只能敲入十六進制的代碼。所以我們做實驗的時候,就是先編寫匯編程序,然后自己把匯編程序翻譯成十六進制代碼,然后一個個敲進去實驗室的儀器里,我當初就是這樣過來的。后來畢業(yè)工作之后,我才知道可以用C語言編寫單片機程序,用了C語言之后,一切都So easy!,當然,很可能就是你說到的原因,因為我已經有了匯編的基礎。? ? ? ? ? ? ???
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?——吳堅鴻的回復
?恩。其實我說的也有點過了。。我只是站在我的地方說一些問題。其實當我成家了。。我有孩子了。。我想我應該也會有這些現(xiàn)實問題。不管怎么樣。我能理解你所說的。。你可以加我QQ嗎???因為我自己會理解很多東西。但我不知道我理解的對不對。再就是我今后的學習目標。。我想跟您說一下。您也幫我指導和參考。主要還是長遠的。一年兩年三年五年。
呵呵,原來高手也是這么來的。。你一說我們的經歷好像哦。可些現(xiàn)在我的水平還是六七年前你水平。但有點不同的是你還敲過十六進制的代碼。那你和那個60的牛X工程師一樣的啊。你敲的16進制。他敲的是0101.。也教我敲一下啊。 怎么把HEX文件直接敲進去啊?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??——chenyao3612
?我會把你當-朋友,但是不要加我QQ,有什么問題直接在我的帖里交流。
那是很古老的設備了。如果你開發(fā)過燒錄器,你也可以明白它的原理。我就開發(fā)過AT89S52單片機與SST89E516RD單片機的燒錄器,燒錄器的原理就是類似于操作一個EERPOM。你只要把這些十六進制的數(shù)據(jù)存入到有固定地址的程序存儲器里面,就完成了燒錄的過程,很簡單。具體的燒錄時序,單片機的芯片的資料上有。當然,也有一些國產的單片機不會公開這些時序,因為它要防別人破解。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ???——吳堅鴻的回復
?好吧。只要您能指導一下我的學習。在哪里都一樣。我現(xiàn)在請教關于關于IIC協(xié)議的幾個問題。
第一個就是那個第9幀數(shù)據(jù)的時候是從機自動把電平接低是吧???所以我主機在8幀數(shù)據(jù)完了我就要把數(shù)據(jù)線拉好,好檢測從機有沒把拉低是吧???
第二就是周天祥在視頻里面說了一句如果從機過五秒后不應答就默認他已經應答了。這句話我一直不能正確理解。我自己是這么理解的。從機不應答就說明數(shù)據(jù)傳輸錯了。但是他說五秒后不應該就默認他已經應該了那是他主機單方面的認為吧?其實從機這一字節(jié)數(shù)據(jù)還是沒有收到正確吧?
第三就是IIC協(xié)議是一種固定的協(xié)議。有固定的格式。但有些IC的時序和那個IIC很像。但那都不叫IIC協(xié)議是吧?就像你說的那三個單片機通信的問題。等于就是你自己為那三個單片機建立一種協(xié)議。只是參考IIC或者是模擬? 我這樣理解有沒有問題
你的意思就是說給單片機燒程序就像單片機通過IIC協(xié)議對EERPOM里面寫數(shù)據(jù)一樣是吧?我這樣理解有問題嗎?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?——chenyao3612
?你問到具體的IIC協(xié)議的細節(jié)問題,我不能回答你,我也沒有那個時間與心思專門為了你這個問題而去查找資料。我要告訴你的是一種思考問題的方式。通訊只有兩種模式,一種是并口方式,一種就是串口方式。你說的IIC,SPI,RS232等等都是串口方式,一個脈沖只能傳送一位數(shù)據(jù)。并口方式就是一個脈沖能傳送1個字節(jié)(或者更多字節(jié))的數(shù)據(jù),傳輸數(shù)據(jù)更加快。至于IIC,SPI,這些細節(jié)時序,如果不是程序調試出了問題非要去查看這些協(xié)議,我一般都不理。我?guī)蛣e人做項目,一般都是先在網(wǎng)上查找一些有沒有現(xiàn)成的C語言驅動程序,找到這些驅動程序之后,然后站在人家的肩膀上做些修改,那就是我的程序了。如果真的找不到這些驅動程序,我才會自己花時間慢慢看IC資料的時序,慢慢調試。正所謂“攻心為上,攻城為下?!?/span>
你的理解基本正確。無論是用并口還是串口方式來傳輸數(shù)據(jù),都是一樣,關鍵是要把數(shù)據(jù)放到對應的“房間”里,就完成燒錄的過程。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??——吳堅鴻的回復
?是啊。這點我也沒搞明白。人家說IC的驅動程序。是不是就是說寫好的時序子函數(shù)。我們拿過來了。只要往函數(shù)里面賦值或者做個表格就行了?? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?——chenyao3612
?是的。對于單片機的外圍芯片,如果能找到現(xiàn)成的驅動程序是最好,如果沒有就要自己根據(jù)IC資料來寫。我要睡覺了,今晚先聊到這,最近我的項目太多,有三個項目客戶等著我交貨。本來還想今晚加加班搞,但是跟你聊得太投入了,只能明天再弄。晚安。
?回答你第三個問題。三個單片機通訊,可以用RS232這些固定時序(或者IIC,SPI),這些固定時序可以不變,但是在這些時序上面?zhèn)魉偷臄?shù)據(jù),每個數(shù)據(jù)的含義你可以自己來定義,哪個單片機做主機,哪個單片機做從機,從機收到哪些數(shù)據(jù),然會返回什么數(shù)據(jù),這些都是你可以定的,但是載體的RS232協(xié)議(標準時序)不用你來變。
把錢看得很淡一些,你說得很灑脫。等你每個月要上繳幾千元的時候,你就不會那樣說了,哈哈。有空再聊,
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??——吳堅鴻的回復