天天看點

51單片機下載下傳完程式後不亮_在Linux下燒錄51單片機

背景

我一直在學習Linux 系統,但是最近還要學習51單片機,是以在Linux下給51單片機燒錄程式那是非常必要的。

之前在windows上使用keil十分友善,但是轉移到Linux上去沒有專門給單片機燒寫程式的IDE了。無奈隻能自己一步一步地配置咯!

看了網上一些部落格發現他們寫的很模糊,像我這種Linux小白真的是一頭霧水,在自己搗鼓了兩天之後,把自己的心得發出來,像我那些即将或者正在為此事煩惱的人能夠稍微輕松一點!

正文

首先得使用USB轉TTL子產品給51單片機接線。

接完線之後,我們得在Linux下配置我們的開發編譯環境。

首先我們得配置SDCC編譯器 ,像我使用了Ubuntu,我直接使用包管理器安裝。當然了你也可以去下載下傳檔案自己下來編譯!

這裡我貼上sdcc的網站連結文字

sudo apt install sdcc
           
51單片機下載下傳完程式後不亮_在Linux下燒錄51單片機

當然了我們有了編譯器還不行。我們還需要可以給51單片機燒錄程式的軟體啊。哈哈。它就是stcflash,大家可以直接使用git指令去克隆到本地

51單片機下載下傳完程式後不亮_在Linux下燒錄51單片機

解壓之後會有一個名為stcflash 的可執行腳本。

51單片機下載下傳完程式後不亮_在Linux下燒錄51單片機

我把她重新命名了一下,為了友善我直接把他重新命名為1。

51單片機下載下傳完程式後不亮_在Linux下燒錄51單片機

之後為1添加可執行權限。 

51單片機下載下傳完程式後不亮_在Linux下燒錄51單片機
chmod +x 1
           

這樣的話,就算沒有字尾名的花也可以運作,因為在腳本第一行就已經申明了運作。同樣的我貼上stcflash的github的位址。

之後我們得把它添加到環境變量裡面去。

51單片機下載下傳完程式後不亮_在Linux下燒錄51單片機
mv 1/usr/local/bin/
           

這時候我們得安裝一個依賴,因為51單片機是使用序列槽下載下傳程式的,安裝一個python serial。

51單片機下載下傳完程式後不亮_在Linux下燒錄51單片機
apt install python serial
           

這時候我們可以執行1(stcflash.py)這個腳本了,這時候切換到工作目錄中,寫一個51單片機的程式。在Linux下寫的和Windows下寫程式會有一些不同的地方。

比如說在Windows下引用reg51.h這個頭檔案就好了而在linux下我們得引用msc51/8051.h這個頭檔案。

51單片機下載下傳完程式後不亮_在Linux下燒錄51單片機

當然了我們在Windows下寫定義端口的的時候是使用^符号,而在Linux下要使用_符号來表示。

我在這裡隻是簡單介紹一下如何在Linux下燒錄單片機,不是來告訴你在Linux和Windows下編寫程式的時候有哪些不同的,這些要注意的是我們自己要去摸索的。

編寫之後我們就可以使用SDCC 編譯我們的.c代碼了。

51單片機下載下傳完程式後不亮_在Linux下燒錄51單片機
sdcc main.c
           

但是sdcc編譯出來的是.ihx檔案。但是燒錄51單片機是要使用.hex檔案。不要怕,其實我們在安裝sdcc的時候我們就已經安裝了一個packihx軟體 。這個軟體的功能就是将.ihx檔案轉化成.hex檔案的。

51單片機下載下傳完程式後不亮_在Linux下燒錄51單片機
packihx  mian.ihx>main.hex
           

使用指令packihx之後,現在我們就有了可以燒寫的了.hex檔案了。

我們之前就已經把1(stcflash.py) 放到了我們的環境變量了,對就是那個我重名命為1的軟體。我們在使用1這個軟體的時候我們要使用root權限。當然了stcflash會自動識别我們插入的端口,但是你電腦上有多個序列槽的話,你可能要指定一下序列槽号。我這裡隻有這一個序列槽号,是以他就會自動識别,目前來看她自動識别還是聽準确的。目前沒啥問題!

51單片機下載下傳完程式後不亮_在Linux下燒錄51單片機
stcflsh main.hex --port /dev/ttyusb0
           

我的序列槽号是USB0。

51 單片機是要斷電重新開機才能燒錄的,是以我們斷電重新開機一下。

51單片機下載下傳完程式後不亮_在Linux下燒錄51單片機

OK

完美。萬事開頭難,解決了第一步,大家都可以開始奔放了。

總結

在最後我得感謝一下B站了,說真的B站是個學習的好地方!大家不要總是追番啦。裡面有很多有用的東西!!!!

第一次寫稿子,希望今後釋出更多的稿子!!!這個文檔寫的很詳細大家跟着做基本都可以解決問題。  

*本文作者:LEdge1,本文屬 FreeBuf原創獎勵計劃,未經許可禁止轉載

51單片機下載下傳完程式後不亮_在Linux下燒錄51單片機

繼續閱讀