蘇州永節(jié)電子科技有限公司
設(shè)為首頁(yè) | 收藏本站
新聞詳情

單片機(jī)開(kāi)發(fā)的學(xué)習(xí)

瀏覽數(shù):2

          由于全文只介紹了51單片機(jī)的自學(xué)線路(那時(shí)候STM32剛盛行),與當(dāng)今時(shí)興的STM32等高檔單片機(jī)對(duì)比,看起來(lái)有一些落伍,因此小編升級(jí)了該文。

        一、51和STM32的差別。

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

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

            STM32有固定件庫(kù),不會(huì)再必須看見(jiàn)指南,查存儲(chǔ)器來(lái)寫(xiě)代碼,在網(wǎng)上還有許多方法。

            諸多優(yōu)點(diǎn)讓STM32變成通俗化、流行單片機(jī),因此 需要從51銜接到STM32的時(shí)期。

二、核心與外接設(shè)備。

         外接設(shè)備便是外面的機(jī)器設(shè)備,如:GPIO、ADC、IIC、UART、SPI等。核心便是里面的關(guān)鍵,如:ALU算數(shù)邏輯性模塊、生產(chǎn)流水線、指令系統(tǒng)等。

        51的核心依然叫51。

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

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

三、怎樣從51銜接到STM32?

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

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

   一、最先把握C語(yǔ)言英語(yǔ)的語(yǔ)法。

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

二、小量的實(shí)踐活動(dòng)。

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

三、培養(yǎng)優(yōu)良的編號(hào)習(xí)慣性。

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

        一、編譯程序、編寫(xiě)、版本控制板。因?yàn)镾TM32的固定件庫(kù)文件,涵數(shù)名、用戶標(biāo)識(shí)符全是較長(zhǎng),大家不太可能逐一鍵入,這就須要采用專(zhuān)業(yè)的專(zhuān)用工具。

            1、c語(yǔ)言編譯器。依然應(yīng)用keil編譯程序代碼。

            2、在線編輯器。在線編輯器便是寫(xiě)代碼的專(zhuān)用工具,由于keil的代碼補(bǔ)齊、提醒都很差,因此 要用其他專(zhuān)用工具來(lái)寫(xiě)代碼。這就開(kāi)了2個(gè)手機(jī)軟件,一個(gè)寫(xiě)代碼,一個(gè)編譯程序代碼。盡管那樣有點(diǎn)兒不便,可是相比于鍵入那一大串涵數(shù)名來(lái)比,算不得什么。推薦VS、Eclipse(C/C   版本)。不推薦應(yīng)用source insight(作用不是很強(qiáng)勁)。

           3、版本控制板。這個(gè)東西便是用于備份數(shù)據(jù)代碼的,千萬(wàn)別用壓縮文件了。推薦git教程。

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

三、自做PCB。數(shù)電、模電基本差的,必須先填補(bǔ)點(diǎn)基礎(chǔ)理論再去。隨后下載一個(gè)Altium Designer6.9,看《Altium Designer視頻教程》。依據(jù)自身喜歡的小東西來(lái)做一塊PCB。畫(huà)好以后先發(fā)至群內(nèi),讓大伙兒具體指導(dǎo)一下,隨后再發(fā)至嘉立創(chuàng)打樣品的,很便宜的,而其他原材料則到淘寶網(wǎng)買(mǎi)。關(guān)鍵把握電焊焊接、檢修、電路原理圖、PCB等基本技能,自身多動(dòng)手能力就能了解的。

四、單片機(jī)世界有多大。即使你如今能輕松玩單片機(jī),但也僅僅打開(kāi)了一扇小小窗子罷了,下邊你能選一個(gè)方位,可是工作上能夠會(huì)使用好多個(gè)角度的專(zhuān)業(yè)知識(shí),總之盡可能多學(xué)點(diǎn)。

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

     2、ucgui/STemwin、Touch GFX。STM32能夠根據(jù)FSMC插口來(lái)推動(dòng)TFT LCD屏,這兒要使用用戶界面庫(kù),能夠?qū)WSTemwin,STemwin實(shí)際上便是ucgui,推薦《STemwin開(kāi)發(fā)手冊(cè)》,還可以學(xué)習(xí)培訓(xùn)Touch GFX。

  3、上位機(jī)軟件。應(yīng)用單片機(jī)收集數(shù)據(jù)信號(hào)送至PC機(jī)上,而PC機(jī)必須一個(gè)上位機(jī)軟件來(lái)操縱單片機(jī),這一上位機(jī)軟件可以用Labview、C   、C、JAVA、乃至是HTML5來(lái)寫(xiě)。在其中最常見(jiàn)的是單片機(jī)跟PC機(jī)的串口通訊,上位機(jī)軟件提議用C或是QT來(lái)寫(xiě),雖然也有許多公司用MFC(C   庫(kù)),可是入門(mén)較為難,不推薦學(xué)MFC。推薦的課本是《C#入門(mén)經(jīng)典》、《QT簡(jiǎn)介》。

    4、算法設(shè)計(jì)和優(yōu)化算法。推薦的課本是周航慈的《嵌入式系統(tǒng)軟件中的常用算法》、《數(shù)據(jù)結(jié)構(gòu)課件》。

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

2、FPGA。能夠參照本blog的《如何學(xué)習(xí)FPGA》。

3、內(nèi)嵌式。許多電子專(zhuān)業(yè)的同學(xué)就覺(jué)得內(nèi)嵌式難以,那是由于內(nèi)嵌式涉及到許多計(jì)算機(jī)相關(guān)的專(zhuān)業(yè)知識(shí),而這種專(zhuān)業(yè)知識(shí)許多是電子專(zhuān)業(yè)不開(kāi)班的,基本技能沒(méi)通關(guān),學(xué)的時(shí)候毫無(wú)疑問(wèn)費(fèi)勁。實(shí)際的自學(xué)線路能夠參照本blog的《如何學(xué)習(xí)嵌入式軟件》。

4、硬件開(kāi)發(fā)。能夠參照本blog的《如何學(xué)習(xí)硬件設(shè)計(jì)——理論篇》、《如何學(xué)習(xí)硬件設(shè)計(jì)——實(shí)踐篇》。

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

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

8、stm32-cubemx。cubemx能夠自動(dòng)生成配備代碼,盡管很便捷,但不建議新手應(yīng)用,會(huì)使你不想不愿寫(xiě)代碼。

9、為何編譯程序沒(méi)什么問(wèn)題,免費(fèi)下載到單片機(jī)卻不對(duì)?編譯程序沒(méi)什么問(wèn)題,表明英語(yǔ)的語(yǔ)法沒(méi)什么問(wèn)題,但無(wú)法說(shuō)明邏輯性、作用是合理的。

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

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