c語言的程序怎麼燒進stm32裡?

用戶5547788937


STM32是可編程器件,用C語言和彙編都可以,由於C語言可讀性強、移植方便,現在用C語言編程成為主流,C語言編號的hex需要下載到單片機中,單片機才能執行,這個過程叫做程序的燒錄或者下載,需要專用工具的支持。對STM32而言,有三種方法可以燒錄程序,分別介紹。

1.使用JTAG接口燒錄程序(用JLINK實現)

JTAG是一種標準的程序燒寫接口,許多比較高端的芯片都支持該接口,該接口有10針,14針,20針等,但是用到的引腳有六個,分別為:TCK,TMS,TDI,TDO等,另外兩根線是TRST和RESET。接口如下所示。

對於STM32而言,上圖中的幾個上拉電阻可以省略不用,STM32在手冊上已經描述了單片機對應的引腳內部有上拉電阻,這種方式可以通過JLINK來實現燒寫。該方式可以實現在線調試,提高了查找問題的效率。

2.SWD

燒錄方式

SWD方式主要用到兩根線:SWDIO和SWCLK,該接口一般和JTAG接口共用,接口電路如下所示:

這種燒錄方式可以通過JLINK、STLINK等工具實現。該方式可以實現在線調試,大大方便了查找問題的效率,而且節省單片機引腳,接口小,節省PCB空間。

3.ISP

模式/UART模式

STM32單片機可以通過UART串口引腳下載程序,這種方式使用的是單片機的串口,即TXD和RXD兩根線,所使用的工具是USB/TTL,如下圖是實現自動ISP下載的電路圖。

上圖看起來複雜,其實USB/TTL芯片不用畫在電路板上,使用額外的工具即可,在連接的時候要使用交叉連接,而且還要選擇單片機的啟動方式,即BOOT0和BOOT1的狀態。該方式下載程序雖然方便,但是無法實現在線調試。與前兩種方式相比,該種方式比較適合量產。

通過以上三種方式即可實現將C語言程序燒寫進STM32裡,從而讓單片機執行程序代碼。

以上就是這個問題的回答,感謝留言、評論、轉發。

更多精彩內容請關注本頭條號:玩轉嵌入式。感謝大家。


玩轉嵌入式


首先你要弄清楚一點的就是,C 語言程序最終都需要通過一個叫編譯器的東西轉化為彙編語言,C 語言能跨平臺的原因也在此。當你用 C 語言寫好你的程序之後,如果你想把它運行在 51 單片機中,那麼你就要通過具備 51 內核編譯能力的編譯器去編譯成 51 彙編代碼,這樣你的代碼才能正確運行,而如果你要運行在 STM32 中,那就需要 ARM 內核編譯器去編譯了。


說回如何燒寫的問題。目前我知道有兩種常用下載方式:1、串口 2、調試器。


首先說下簡單的串口下載,據我所知,這是所有 STM32 單片機都具備的下載方式。它的下載方式很簡單,就是通過一個軟件,比如 mcuisp.exe,將類似 bin、hex 這樣編譯好的文件通過串口的方式將數據傳輸至 STM32 中 (掉電不丟失),然後再執行你的代碼。優點是隻要有一個串口和下載軟件就能下載了,缺點是下載速度慢,並且不能在線調試。


在這裡簡單說一下 STM32 串口下載的原理。STM32 在生產的時候會首先燒錄一段程序,可以稱它為 Bootloader 程序,這個程序在一般情況下是不會運行的,需要通過設置一些引腳(BOOTx)的狀態去激活它。一旦這段代碼運行起來了,就會一直檢測其中一個串口的狀態信息,一旦識別到了需要下載的條件,就會按照它自己的通信協議完成數據的傳輸,最終將整個文件代碼保存在單片機裡面。下載完畢之後,你需要讓它退出這種模式,讓它回到正常的程序運行狀態才能執行你剛才下載好的程序(還是通過設置 BOOTx 引腳的狀態)。


現在說下第二種下載方式,下載器。


下載器的類型有很多,有 J-LINK, ST-LINK,CMSIS、ULINK等等,看 MDK 中的下載列表就知道了。

相當豐富。使用調試器下載最大的好處就是可以在線調試,實時觀察程序的運行情況和數據變化,相當不錯。


調試器下載的方式也是有很多種,比如像上面的,直接通過 MDK 集成軟件下載,很方便。這種方式下載的是

.axf

文件類型(注意,可以通過 MDK 下載到 RAM 中也可以下載 FLASH 中,下載到 RAM 中掉電後代碼是會消失的)。

還有就是通過專業的下載工具下載,比如 ST-LINK Utility(利用 ST-LINK下載器下載),這種下載工具下載的文件類型就比較豐富了,可以是

.bin

或者

.hex

等(這些文件類型可以由 MDK 軟件直接生成),也是很方便的。當然這些下載工具不具備在線調試的功能就是了。

其實除了上面兩種常見的下載方式,有些類型的 STM32 單片機還集成了 CAN、USB 等下載方式,感興趣的可以去 ST 官網查找相關的筆記。


魚鷹談單片機


編譯好程序,將bin或hex存入tf卡。煤氣灶開火,將STM32與TF卡重疊,一起放在火眼上,注意一定要放平,建議選擇ST官方燒寫專用煤氣灶和專用燒寫煤氣。根據STM32型號和flash容量調節火力和燒入時間,檢驗完成即可燒寫成功!

望採納


分享到:


相關文章: