㈠ 單片機如何選購及入門
1、價格要低
因為是學生,肯定沒有太多經濟基礎,選擇價格低的單片機是必須的,而且剛開始學習太貴的單片機功能太多,初學者無法很好掌握,價格低的單片機功能較少,更容易掌握。
2、外設盡量多
如果購買的是學習板,那麼最好是選擇外設多的學習板,因為單一去買外設價格會更貴,而且整合度不高,最好是直接選擇外設多的學習板,這樣可以一次性學習所有的模塊功能,當然價格會有所增長,只要控制在200元之內就好了。
3、操作盡量簡便
在購買學習板之前,最好是問好老闆這個學習板的調試和下載程序是否方便,是否配有教程,是否每個外設都有文檔,是否有中文翻譯。
開發板壞了是否可以退換等,如果具備上面幾點,那麼就可以入手了。
㈡ 單片機學到什麼樣子才算是高手了
1,精通C和匯編,缺一不可
2,精通常用演算法,如PID調節、CRC、各種數學函數在單片機中靈活實現以及應用
3,精通兩個以上不同系列MCU的軟硬體
4,精通各種串列數據介面的軟硬規范
5,精通各種大功率驅動任務的實現
6,精通各種單片機開發會涉及到的軟體
7,熟悉上述涉及到的以及可能涉及到的器件、模塊
8,熟悉所有在開發任務中可能設計到的機械、化學、材料等基礎知識
9,擁有110以上的智商
10,永遠覺得還有很多東西需要去學習
11,嚴謹的設計理念,善於統籌協調成本與性能的關系
12,較強的知識產權意識,尊重自己以及他人
都以為單片機簡單是吧?就那麼一個小小的電子晶元,但它涉及的東西太多太多。。。。。。
哥玩的不是單片機,是寂寞~~~
㈢ 怎樣提升自己單片機C語言編程能力啊求高手指點迷津!我硬體也懂一點 但我想朝編程方面發展 跪求高手指教
到樓主描述的這種程度,比較實際的只有兩種方法:一是實踐,實際做一個較大的項目,二是多看看網上的一些好的範例,哪怕是你做過的項目,重點不是看其所實現的功能,而是看其源程序的特點和結構!個別的可以關注一下演算法。還有一種方法,學一些軟體專業的必修基礎課,了解軟體編程的思維模式,這可能要搭些功夫,而且影響是潛移默化的,如果不是搞純軟體的話,個人觀點可以不學。
C語言編程能力並不完全體現在代碼的編寫效率和執行效率高。注意:是不完全,這方面的提升與個人的邏輯思維能力和其它知識水平有關。舉個例子:假如讓你編制一個函數實現求arctan反三角函數的值,你會怎麼做?如果你不知道採用級數展開的方法就無從下手。其實這考驗的是你的數學水平。所以這方面的提高是綜合性的,無法具體而談。
可以提升的我認為體現在如下幾個方面,這幾方面做好了,同樣也可以說具備相當的編程能力了。
1、軟體版本管理:任何軟體,每次修改發布後必須更新軟體版本號,這點工作後尤其關鍵,我見過這方面不認真的,別多了,3、4個版本後就焦頭爛額。
2、源程序中多些注釋:比如函數的功能描述、入口參數說明、返回值說明、調用的要求、完成日期等。另外,關鍵演算法的說明也應該注釋。常言道:好記憶不如爛筆頭,不能太過相信自己的智商。
3、工程化管理源程序:比如對一些常數、介面地址、數據類型定義(typedef)、數據結構定義、自定義的函數聲明等,應寫入單獨建立.H文件,然後在其它.C文件中包含。.C文件,如果軟體大的話也盡量的按照功能分別建立,然後在工程中包含。
4、有時,一個軟體會針對不同型號的設備,此時應採用#ifdef等編譯控制語句加以區分;而且,為方便調試,有時需要對一些狀態或變數賦與初值,而正式版本中不能要,也可以採用這種方法,便於管理,不易出錯。這部分內容應放在前面所說的.H文件中。
5、盡量多使用函數,這樣模塊化強,也能通過函數名看出函數功能,易於代碼閱讀。最簡單的例子就是初學者常用的Delay()。不過也別太過了,A=B+C就沒必要了。
6、對一些常數、地址,最好使用#define通過英文字元來代替,將其放在.H文件中,這樣萬一有變化,只需改一處即可,方便,又不會遺漏。比如定時器重裝值:
#define C_TH0_50MS (65536-50000)/256
如果需要改晶振,只需改此處即可。
以上注重的是整個軟體方面,下面說一些具體需要注意的,不成系統,也沒整理過,想到那說到哪吧。基本上是些規范,規范同樣代表著水平:
1、多分枝邏輯判斷類語句:應養成將所有判斷情況都寫出來、不用的注掉的習慣,這類語句包括if、switch,舉例
if(i==4)
{....}
//else if i>4
//else i<4
其中else的兩部份不用,那也寫出來,注掉。這樣幫助你保證程序的嚴密型,也有助於問題排查
2、常數、變數、函數、埠等的命名:(不要出現全局變數名與局部變數名相同的情況,雖然在C里允許這樣做)我個人採用如下規則
全局變數:類型+具有實際意義的片語或拼音,其中片語或拼音中每個字首字母應大寫。
例如: iSecondCount:一個int類型的秒計數變數
局部變數:全小寫字元,循環計數變數可以採用諸如i、j、k、n之類的無意義字元。最好不用
a、b、c之類的16進制數所使用的字元。
埠:全大寫,並使用具有實際意義的片語或拼音,使用_作為分割符。如KEY_COM
常數:前面加「C_」,後面每個單詞之間最好也加「_」,如上例中的C_TH0_50MS
函數:類似於全局變數,只是前面不加類型說明符。如Timer0、Delay、DelayMs。
3、源程序中的注釋符盡量不使用/* */,而使用//,這樣如果要臨時注掉大塊程序時,使用一次/* */就可以了,否則可能需要修改多處,麻煩。
4、格式上,注意縮進,尤其是多級判斷。而且執行體既便只有一句,有些地方也盡量不要忽略大括弧,舉例:
if(a>4)
{
a++;
}
else
{
a=0;
}
5、..............還有很多,一下想不起來。你可以自己體會,自己制定。
能力的體現方式有很多,比如說求職是否能如願。看人看細節,如果編程時養成了上述的習慣,不管你的實際水平如何,都說明了你的處事態度,在大家的智商水平差不多的前提下,無論於公於私,如果我是老闆的話會選擇你,放心的把任務交給你去做。
你先試試吧,說起來容易,做起來難,我自己的規則,我的執行度也就達到70%水平吧。
㈣ 如何成為從事單片機開發工作的人
要求不要太高,先進一個公司,實際的開發一些產品,慢慢的就會有經驗了。