經(jīng)過一周的努力,終于將程序燒寫上去了,這周過去后,我一定要做兩件事,一是要好好的研究一下代碼,二是好好研究一下手冊(cè)。不了解芯片,走了不少彎路錯(cuò)誤,還有會(huì)留下一大堆莫名其妙的問題。
正文:
1、小鋼炮的使用的MCU是STM32F401RET6,stm32比較常用的燒寫方式主要有JLINK、ULINK、STLINK、串口方式,根據(jù)“stm32F401xE”的手冊(cè)介紹,還可以使用USB OTG,I2C、SPI的方式將程序下載到MCU的Flash內(nèi)。
datasheet 中關(guān)于Boot modes的介紹
2、我在學(xué)習(xí)過程中使用的是U盤版stlink V2燒寫器將程序下載到板卡上這里具體介紹一下過程整個(gè)燒寫過程
2.1、硬件連接
說明:上圖即為硬件連接圖,藍(lán)色的為U盤版stlink V2版本,使用這個(gè)燒寫器不用連接外部電源,上圖中,雖然P12端口連接的線,但并沒有連接電源,這里P4端口上的跳線帽可連可不連,從原理圖及實(shí)際的測(cè)試來看,該跳線帽只有在使用USB或者P12端口供電時(shí)才需要使用。
這里F1對(duì)應(yīng)的排針是控制Boot模式的控制跳線,在此連接時(shí)將BOOT0和BOOT1都連接到GND側(cè),這里對(duì)于STlink的連接,根據(jù)原理圖分別連接stlink的VCC3.3V(切記不要連到5V上,否則可能會(huì)有燒掉片子的危險(xiǎn)),SWCLK,SWDIO,GND這四根線,在U盤版的 stlink V2 版本都有標(biāo)注,這里不再贅述。
2.2、軟件設(shè)置
首先,下載小鋼炮的事例源碼,這里不再提供下載地址,打開開發(fā)環(huán)境(環(huán)境搭建已在上一份帖子中介紹完成),導(dǎo)入工程(project--》Open Project -- 》“彈出對(duì)話框”---》找到工程文件)。
此時(shí)你可以看到如上圖中情況,這里我們選擇cannon_v2,這里V1和V2表示對(duì)應(yīng)的不同版本硬件的代碼,我這里得到的板卡是V2版本的,(查看硬件版本,請(qǐng)參考下圖中紅色箭頭指的的位置)
然后,進(jìn)行編譯,源碼導(dǎo)入后,設(shè)置編譯及下在環(huán)境,project--》Options for Targets“cannon_v2”,或者直接點(diǎn)擊如下圖的按鈕,進(jìn)入設(shè)置界面
這里很多帖子都已經(jīng)敘述設(shè)置過程,在此我不再進(jìn)行敘述,這里僅僅說一下注意事項(xiàng),
a、設(shè)置前建議將stlink先接到USB上識(shí)別并且安裝好驅(qū)動(dòng);
b、在設(shè)置debuger選項(xiàng)時(shí),點(diǎn)擊setting后會(huì)出現(xiàn)如下圖所示界面,如果你已經(jīng)連接了燒寫器并且被正確識(shí)別,在JTAG Device Chain選項(xiàng)中不應(yīng)該提示如紅圈所示的“No ST-LINK detected“,如果出現(xiàn)以上提示,說明ST-link沒有被正常識(shí)別。
c、Ort(藍(lán)色背景的選項(xiàng)),JTAG表示ST-link信息,SW表示目標(biāo)板信息只有兩個(gè)選項(xiàng)在JTAG Device Chain選項(xiàng)均提示設(shè)備連接正常時(shí),程序才能正常被下載到芯片中。
以上設(shè)置均正確設(shè)置后,點(diǎn)擊重新編譯,這樣可以保證你的二進(jìn)制代碼是最新的。
最后點(diǎn)擊下載命令按鈕將程序下載到板卡上,紅色圈的按鈕
過程中遇見的問題說明:
1、stm32f401可以通過串口,stlink ,Ulink,Jlink等方式將程序下載到flash中去,這里我也嘗試過使用jlink的方式下載程序,但沒有成功,主要原因是使用的JLINK版本過于古老(2010年買的,之前的朋友留下的),推測(cè)是V7的固件,嘗試將固件升級(jí)到V8,但沒有成功,軟件總是無法識(shí)別,這里推測(cè)可能是已經(jīng)壞掉了。 JLINK現(xiàn)在最新版本是V8,我從商家了解到的情況時(shí)JLINK現(xiàn)在已經(jīng)基本停產(chǎn)了,正版行貨一般是¥2000.00,市面上賣的均為盜版,價(jià)格也是從¥95.00~¥200.00不等,JLINK對(duì)ARM的支持是最全面的,一般如果預(yù)算可以,建議購買JLINK。由于我手中已經(jīng)有一個(gè)了,雖然不好使,但我覺得應(yīng)該是我沒搞清楚那個(gè)東西的升級(jí)過程,所以我沒有購買JLINK。
2、網(wǎng)上對(duì)于開發(fā)stm32比較推薦使用的是stlink,這種仿真器分兩個(gè)種類一是正常板的(如下圖中白色燒寫器),另一種是U盤版的stlink(如下圖藍(lán)色燒寫器)。正常版本的網(wǎng)上價(jià)位很多,從二十幾元的到二百多的都有,用的也比較多,U盤版的stlink價(jià)格一般十幾塊到四十幾塊。兩者但從固件版本上來講,均為V2版本,但在從實(shí)際使用者的反饋來看,白色的故障率要比藍(lán)色的故障率高,這里我從論壇看到的使用反饋來看,白色的燒寫器在使用時(shí)需要給板卡外部供電,而藍(lán)色不用。我分別花了60塊大洋和30塊購買了這兩種燒寫器,通過實(shí)際使用,個(gè)人推薦U盤版的stlink,該版本不需要對(duì)板卡進(jìn)行供電,同時(shí)價(jià)格低廉,使用白色的stlink一直也沒有成功過,也不知道是壞了,還是我的操作有問題。
3、根據(jù)手冊(cè)提示,stm32F401芯片還可以使用串口或者I2C、SPI總線方式將程序燒寫至flash中去,我查看了一下小鋼炮的原理圖,發(fā)現(xiàn)該板卡上并沒有MAX232這類電平轉(zhuǎn)換芯片,由于我對(duì)stm32串口的電氣參數(shù)還不了解,這里我沒有嘗試串口這種燒寫方式,以免由于自己的魯莽損壞板卡。如果有了解這種燒寫方式的前輩,希望你能分享您的經(jīng)驗(yàn)或者向我推薦相關(guān)的帖子,在先謝過了。
最后,說一點(diǎn)個(gè)人的建議,miniUSB的焊接強(qiáng)度不夠,極易損壞,我的就在嘗試使用USB連接時(shí),不經(jīng)意被掰掉了,然后嘗試焊接回去,強(qiáng)度依然不行,最終導(dǎo)致PCB焊盤損壞,現(xiàn)在已經(jīng)無法在焊接回去了,這里希望板卡商能注意
-
STM32
+關(guān)注
關(guān)注
2270文章
10915瀏覽量
356787 -
JTAG
+關(guān)注
關(guān)注
6文章
401瀏覽量
71748 -
智能硬件
+關(guān)注
關(guān)注
205文章
2350瀏覽量
107754
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論