蘇州永節電子科技有限公司
設為首頁 | 收藏本站
新聞詳情

單片機開發的學習

瀏覽數:2

          由于全文只介紹了51單片機的自學線路(那時候STM32剛盛行),與當今時興的STM32等高檔單片機對比,看起來有一些落伍,因此小編升級了該文。

        一、51和STM32的差別。

            STM32比51cpu主頻高、RAM大、FLASH大,那麼STM32能解決的一件事就越來越多了。

            STM32外接設備比51多,如:CAN、USB、FSMC等,能使你節省集成ic。

            STM32有固定件庫,不會再必須看見指南,查存儲器來寫代碼,在網上還有許多方法。

            諸多優點讓STM32變成通俗化、流行單片機,因此 需要從51銜接到STM32的時期。

二、核心與外接設備。

         外接設備便是外面的機器設備,如:GPIO、ADC、IIC、UART、SPI等。核心便是里面的關鍵,如:ALU算數邏輯性模塊、生產流水線、指令系統等。

        51的核心依然叫51。

      STM32的核心有Cortex M0、M0 、M3、M4、M7等。

      由于ARM Cortex系列的集成ic分成高檔的A系列產品,中端R系列產品、中低端的M系列產品,因此 STM32有多種核心。

三、怎樣從51銜接到STM32?

        盡可能51有那么多的不太好,可是成本低仍然是它的優點。一片OTP(一次性程序編寫)的51低至0.3毛,它適用諸多電器產品。因此 并無法以簡單的技術性欽佩而把51貶得一無是處。只不過是,大家必須把握大量的技術性,以滿足不一樣的辦公環境。

       即然要從51銜接到STM32,那麼滯留在51的時間不能很久,把握基礎的計時器、串口通信,就可以轉至STM32上去了。有的院校先教選編,再教C,但我覺得,先學C,再到選編會比較好,由于選編枯燥乏味難學,造成單片機還不起作用起來,興趣愛好就削減一大半了。如同linus這句話,你得先學好運用它。

   一、最先把握C語言英語的語法。

       單片機用的C語言叫C51,C51除開規范C的英語的語法以外,還特地為單片機增加了一些英語的語法罷了,沒有較大差別,那麼我們可以安個VS(別再用VC6.0那一個聽膩的IDE啦)隨后,隨意找本語法書抄代碼,效仿寫,不去看書作出課后習題就可以了,在其中步驟操縱(包含if,for,while,switch等)及其表針和建筑結構全是必須熟練掌握的。推薦播放視頻《邊用邊學C語言》。

二、小量的實踐活動。

       下面,你能買一塊單片機單片機開發板來做一些小東西了(只買一塊單片機開發板56元就可以,無須耗費過多錢),例如:搖搖棒,光立方,密碼掛鎖,超聲波傳感器,紅外線無線遙控這些(許多奇特有意思的小東西都能夠在社區論壇尋找)。自然,也不用每一個都做,我們可以選一些差異比較大的來做,那樣升級會快一些。推薦視頻《十天學好單片機》,也能看單片機開發板配套設施的視頻,教材內容《單片機c語言編程設計實踐100例——根據8051 proteus模擬仿真》。適度的做好多個就可以了,不要在這一環節滯留很久,關鍵把握計時器和串口通信。

三、培養優良的編號習慣性。

        在《十天學好單片機》里會產生諸多不太好的代碼,可是我們不能一下子寫下出色的代碼,務必有一個緩沖期,因此 提議大伙兒首先看郭大俠的視頻。那麼怎樣寫下高效率并且易讀性好的代碼呢?這兒只提及一點,不必中文拼音來取名自變量或是涵數名,像int shi,fen,miao;這種全是異常的編號習慣性,務必所有使用英語取名。推薦的行為便是多參照高手們寫的代碼,在文庫百度或是各種電子論壇都能夠見到許多杰出的代碼。除此之外,推薦《從單片機新手邁進單片機技術工程師》、《MISRA C標準工程師筆記》、《C語言編程規范》、《C51代碼設計風格》。四、掌握匯編程序。單片機技術工程師又叫固定件技術工程師,由于她們寫的代碼全是跟存儲器相處,而存儲器又可以立即操縱硬件配置,處在底層的手機軟件并且無需常常修改,因此 叫固定件。這一部分必須數電、模電的基本才好了解,因此 在高校全是先教數電、模電再教單片機的。如今你需要用匯編程序來玩單片機,你能發覺選編較為繁雜,寫出去的代碼易讀性差、可擴展性差并且難以維護保養,但選編即使你很明確地感受到單片機是怎樣作業的,及其了解C語言表針的基本原理。但是,大家不用刻苦鉆研匯編程序,只必須有一定的掌握,例如,精確的延遲。

        一、編譯程序、編寫、版本控制板。因為STM32的固定件庫文件,涵數名、用戶標識符全是較長,大家不太可能逐一鍵入,這就須要采用專業的專用工具。

            1、c語言編譯器。依然應用keil編譯程序代碼。

            2、在線編輯器。在線編輯器便是寫代碼的專用工具,由于keil的代碼補齊、提醒都很差,因此 要用其他專用工具來寫代碼。這就開了2個手機軟件,一個寫代碼,一個編譯程序代碼。盡管那樣有點兒不便,可是相比于鍵入那一大串涵數名來比,算不得什么。推薦VS、Eclipse(C/C   版本)。不推薦應用source insight(作用不是很強勁)。

           3、版本控制板。這個東西便是用于備份數據代碼的,千萬別用壓縮文件了。推薦git教程。

二、學好固定件庫。擁有上一步的準備工作以后,先弄一塊STM32單片機開發板,帶仿真器,248元。這兒免費下載代碼并不像51這些,用串口通信就能免費下載的了,得此外用一個仿真器。這兒的仿真器有ST link、Ulink等,不推薦應用J link。而仿真器的插口有JTAG和SWD,推薦應用SWD,接3個線就可以了。推薦教材內容《STM32開發設計手冊函數庫實例教程》,也能看單片機開發板配套設施的視頻。這兒要把握STM32的外接設備,如:ADC、RTC、CAN、IIC、SPI、UART、DMA、SDIO、IAP等。

三、自做PCB。數電、模電基本差的,必須先填補點基礎理論再去。隨后下載一個Altium Designer6.9,看《Altium Designer視頻教程》。依據自身喜歡的小東西來做一塊PCB。畫好以后先發至群內,讓大伙兒具體指導一下,隨后再發至嘉立創打樣品的,很便宜的,而其他原材料則到淘寶網買。關鍵把握電焊焊接、檢修、電路原理圖、PCB等基本技能,自身多動手能力就能了解的。

四、單片機世界有多大。即使你如今能輕松玩單片機,但也僅僅打開了一扇小小窗子罷了,下邊你能選一個方位,可是工作上能夠會使用好多個角度的專業知識,總之盡可能多學點。

      1、嵌入式操作系統。不推薦用51單片機跑系統軟件。而STM32能夠跑ucos II、ucos III、free RTOS、coos、RT-Thread、RTX等。推薦學ucos II,教材內容是任哲的《嵌入式實時操作系統ucosII原理及應用》,只需把握一種嵌入式操作系統,其他都能夠融會貫通。移殖操作系統時,會使用選編。推薦學習培訓free RTOS或是RT-Thread。

     2、ucgui/STemwin、Touch GFX。STM32能夠根據FSMC插口來推動TFT LCD屏,這兒要使用用戶界面庫,能夠學STemwin,STemwin實際上便是ucgui,推薦《STemwin開發手冊》,還可以學習培訓Touch GFX。

  3、上位機軟件。應用單片機收集數據信號送至PC機上,而PC機必須一個上位機軟件來操縱單片機,這一上位機軟件可以用Labview、C   、C、JAVA、乃至是HTML5來寫。在其中最常見的是單片機跟PC機的串口通訊,上位機軟件提議用C或是QT來寫,雖然也有許多公司用MFC(C   庫),可是入門較為難,不推薦學MFC。推薦的課本是《C#入門經典》、《QT簡介》。

    4、算法設計和優化算法。推薦的課本是周航慈的《嵌入式系統軟件中的常用算法》、《數據結構課件》。

    5、插口運用。單片機的里面資源非常少,許多情況下必須外接一些集成ic、感應器。這兒需用到用模電、電子器件精確測量、互聯網等專業知識。推薦的課本是陳尚松等著的《電子測量與儀器》和謝希仁的《計算機網絡》。除此之外,還會繼續使用一些通訊控制模塊,例如Zigbee、WIFI、手機藍牙、NB-IOT、433控制模塊、NRF24L01、RFID感應卡等,有感興趣能夠弄一下,這種全是非常適用的技術性。五、其他難題。1、單片機的代碼是怎樣運作的?推薦看《計算機組成原理》。

2、FPGA。能夠參照本blog的《如何學習FPGA》。

3、內嵌式。許多電子專業的同學就覺得內嵌式難以,那是由于內嵌式涉及到許多計算機相關的專業知識,而這種專業知識許多是電子專業不開班的,基本技能沒通關,學的時候毫無疑問費勁。實際的自學線路能夠參照本blog的《如何學習嵌入式軟件》。

4、硬件開發。能夠參照本blog的《如何學習硬件設計——理論篇》、《如何學習硬件設計——實踐篇》。

5、單片機開發板的挑選。這兒推薦的單片機開發板全是一整板(上邊的連接并不是廣告宣傳,僅僅的確有些人不容易選單片機開發板才給出去的),里邊有很多集成ic的。不推薦一個關鍵板留了許多插口,每一個接頭都需要此外買一塊主板,這類板叫子母板,一個母板不貴,可是線路板許多,買多幾元就花很多錢,并且線路板不大,非常容易丟。

6、為何學員難以定計劃方案?由于學員積攢的事物并不是很多,考慮到的不那麼全面,許多專業知識將信將疑,無法制定計劃方案。這時候要多了解新生事物,只需累積的多,就理所當然的會出計劃方案了,無需太心浮氣躁。7、MDK。Keil有51版本和ARM版本,在其中ARM版本的Keil又稱之為MDK。

8、stm32-cubemx。cubemx能夠自動生成配備代碼,盡管很便捷,但不建議新手應用,會使你不想不愿寫代碼。

9、為何編譯程序沒什么問題,免費下載到單片機卻不對?編譯程序沒什么問題,表明英語的語法沒什么問題,但無法說明邏輯性、作用是合理的。

10、為何在網上都是有那么多代碼能夠拷貝,還需要自身寫代碼?由于在網上能找出的代碼許多,而在網上找不著的代碼卻大量。

11、proteus和multisim區別。
proteus很適合仿真單片機,但是仿真的效果不能替代實物,一切以實物為準。
multisim適合在剛剛學習模擬電路時,聯系做一下仿真來幫助理解電路工作原理。
12、為什么有的STM32開發板可以用串口下載代碼,還需要仿真器嗎?
   STM32有個IAP的功能(又稱為遠程升級),可以用任意的接口來下載代碼,但是這種方法是建立在芯片本身有IAP的代碼,才可以使用。
在一個沒有任何代碼的芯片上,不能使用串口下載代碼,這時,必須使用仿真器。
13、單片機不就是C語言嘛,還需要學單片機原理?
      在工程上會遇到單片機內部資源的調度、IO口的電氣特性、帶寬等問題,你不懂單片機原理是解決不了這些問題的。
14、單片機的匯編和微機原理的匯編。
      微機原理講的是PC機中x86架構的匯編,和51單片機的匯編是有區別的。不要看錯書。
      而51單片機的匯編和STM32的匯編也是有區別的,51的是CISC架構,而STM32的是RISC架構。