做電子工程師切忌浮躁,一定要認真,就拿看芯片的數據手冊,一定要仔細,哪怕是一個字都不要放過,雖然數據手冊上面可能有錯,但你連這點都做不到怎么發現錯誤。
初學單片機時,可以把單片機當一個黑匣子,把C或匯編當成一個工具,一切都好辦,三幾天的功夫就可以把單片機內部資源搞定。然后再多修練幾天就可以做項目,再好好修練一下可以在單片機上跑系統,然后就感覺單片機好簡單,沒什么好學的,看看別家的單片機,也是相通的,看看datasheet,再熟悉一下編譯器可以開工了,可是你真正懂單片機了嗎?
有些人干了好長時間的單片機工程師,可是還不知道ROM與RAM的區別,也或許只知道ROM是只讀存儲器,放程序,RAM是隨機存儲是放數據的,但諸如 PROM,EPROM,OTPROM,EEPROM,NORFLASH與NANDFLASH更是不知道有什么聯系與區別。還有哈佛結構與馮·諾伊曼結構的單片機有什么區別,各有什么好處?單片機內部都有幾種總線,有什么聯系?為什么有的單片機要把程序存儲器分頁,為什么要分出程序存儲空間與寄存器空間?一般哈佛結構的單片機有幾級流水線緩存,二級,三.級還是更多,流水線緩存有什么好處,為什么不能做更多?……別的不說就再說一個簡單的,單片機的端口都是什么結構的,輸入與輸出有什么區別,輸出的高電平是多少,輸出 電流是多少?也許你說這些datasheet上有呀,可是你想過沒有為什么要這樣設計,為什么你的程序寫出來了,跑的沒那么快,或者沒有出現你想要的結果?
單片機工程師也應該是電子工程師的范疇,與寫上位機的程序員還有所不同,單片機工程師不但會在電腦前面敲程序,還要懂硬件,單片機程序是干嗎的,是驅動硬件的讓硬件干活的,弄到最后也就是一堆01010的代碼,而靠這些010101來驅動硅晶片來工作的,做事情要抓住事物本質,同樣寫單片機程序同樣要抓住單片機的本質,連單片機內部結構都弄不清,怎么寫出優質的程序。
當你什么都不懂的時候,你會覺得單片機很簡單(看看datasheet,熟悉就下編譯器,就搞定了)。當你深入了解了單片機以后,你才會真正的覺得它簡單,但此簡單與彼簡單不是一般的簡單。
原著:懶貓愛飛 |