-
1 # 玩轉嵌入式
-
2 # AT89C2051
編譯好程式,將bin或hex存入tf卡。煤氣灶開火,將STM32與TF卡重疊,一起放在火眼上,注意一定要放平,建議選擇ST官方燒寫專用煤氣灶和專用燒寫煤氣。根據STM32型號和flash容量調節火力和燒入時間,檢驗完成即可燒寫成功!
望採納
-
3 # 魚鷹談微控制器
首先你要弄清楚一點的就是,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 官網查詢相關的筆記。
-
4 # 科技電小二
目前針對stm32燒錄,我知道的有三種燒錄形式,
分別是SWD介面,Jtag介面,串列埠燒錄,
其中前兩種比較常見。
接下來主要講解下SWD和Jtag介面,
SWD 介面,是需要五個燒錄io分別是 VCC
GND.NRST
SWDIO,SWDCLK
注意 :此處必須加NRST,如果不用這個引腳,會容易燒錄不正常。
JTAG燒錄,使用了TCK,TMS,TDO,TDI,TRST,RESET,vcc,GND
在keil中如何選擇位置
首先選中需要設定的工程—>滑鼠右鍵-彈出Options for target "工程名"
生產過程中,一般不jlink 線上燒錄,為了能夠可批次,高效率的燒錄程式,選擇離線燒錄器,常見官方的離線燒錄器,正點原子也有離線使用的燒錄器,可以在淘寶搜尋下stm32 離線燒錄器 一般配套有對應軟體,可以按照對應的操作說明 選擇JTAG或者SWD
回覆列表
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裡,從而讓微控制器執行程式程式碼。