一、實驗開始之前
234454kjgsxjtezhhhtwxi.jpg (79.68 KB, 下載次數: 67)
下載附件
2016-6-17 18:53 上傳
試驗開始之前,非常感謝三創電子舉辦的“新年搶樓,送板子”活動,有幸獲得JLINK、ST-LINK以及STM32F103C8Mini開發板各一塊,雖然有散件待焊,常年奮斗在硬件開發的熟手們并非難事,一手烙鐵,一手焊錫,不費吹灰之力很快就能將其焊接好。
234455qkx1k2bdq5kmd1b2.jpg (57.68 KB, 下載次數: 77)
下載附件
2016-6-17 18:53 上傳
因為J-LINK是 ARM-OB版本,不支持JTAG(其實也不是不支持,親測該型J-LINK 的JTAG不能提供3.3V供電,對于熟悉JTAG引腳接口的人士,可以飛線或外部供電使用),因此只焊接4個SWD接口即可,不過焊上20PIN的標準JTAG接口也未嘗不可,待解決電源供電的引腳后,也能支持通過JTAG下載程序使用了。 二、實驗過程
0、更新ST-LINK固件和JLINK固件
A、ST-LINK固件升級 剛拿到的ST-LINK固件版本并非是最新的,能與機器上的ST-LINK驅動完美適配,因此需要使用st-linkv2_upgrade 工具對其進行固件更新。固件更新工具下載地址如下:
234455pmf55keh0aw0h00w.jpg (3.22 KB, 下載次數: 105)
下載附件
2016-6-17 18:53 上傳
用Mini USB連接ST-LINK后,運行EXE文件,點擊DeviceConnect后,可以得到當前固件版本和更新固件版本(因我這里是最后寫的調試環境,固版本號始一直的,諸位未升級固件的版本號略有不同),點擊Yes后即可更新固件。
234456xhg900z9imypz719.jpg (32.49 KB, 下載次數: 100)
下載附件
2016-6-17 18:53 上傳
B、J-LINK ARM OB固件升級 1)、下載J-LINK驅動
234457mzbul6p55l9yssmj.jpg (53.12 KB, 下載次數: 104)
下載附件
2016-6-17 18:53 上傳
下載后安裝很簡單,可以通過下一步、下一步安裝到系統中。若已經安裝有J-LINK驅動的可以跳過這步,直接升級固件。 2)、恢復到一個低版本的J-LINK固件 驅動下載并按轉好后,使用Mini USB連接。J-LINK OB固件恢復出廠設置,打開“開始”菜單--〉“SEGGER” ---〉<版本號>---〉“J-LinkCommander”,并輸入 exec invalidateFw(手動降級命令)如下圖:
234457o3qvhmagub2txvtx.jpg (40 KB, 下載次數: 79)
下載附件
2016-6-17 18:53 上傳
然后會彈出一個更新固件的對話框,選擇 yes 進入更新
234457ewwzhg3zp366c8np.jpg (21.32 KB, 下載次數: 72)
下載附件
2016-6-17 18:53 上傳
234457paa2h7qy42mms2r9.jpg (19.21 KB, 下載次數: 96)
下載附件
2016-6-17 18:53 上傳
234458fu65vddzvziz2vp8.jpg (45.01 KB, 下載次數: 88)
下載附件
2016-6-17 18:53 上傳
當看見 new firmware bootedsuccessfully 后,現在固件已經還原為以前較低的版本了。 3)、更新固件 連接上J-LINK后,啟動Keil ,啟動 “Flash”----〉Configure Flash Tools后,
234459gtykbjyyakrkbnyj.jpg (4.57 KB, 下載次數: 87)
下載附件
2016-6-17 18:53 上傳
選擇Debug標簽頁,在Use下拉框中選擇 J-LINK后點擊Settings。
234459it12st2p6eekses6.jpg (40.04 KB, 下載次數: 97)
下載附件
2016-6-17 18:53 上傳
在彈出配置菜單后提示后,提示有固件更新的對話框,點擊“是”。
234500zjw0uyu1g70jm33n.jpg (37.74 KB, 下載次數: 97)
下載附件
2016-6-17 18:53 上傳
系統會根據當前的J-LINK驅動自動監測并更新J-LINK固件。
234500y7bzexes6m1bsl02.jpg (21.84 KB, 下載次數: 83)
下載附件
2016-6-17 18:53 上傳
更新固件后,J-LINK配置窗口顯示出了相關的配置信息,選擇SW調試方式后,一切準備工作就做好了。
234501dqybmffkk6bpbz0f.jpg (47.19 KB, 下載次數: 94)
下載附件
2016-6-17 18:53 上傳
1、使用CubeMX輔助創建STM32F103C8 Mini開發板源代碼
234502ps3tsm7s1mzlutnz.jpg (14.92 KB, 下載次數: 89)
下載附件
2016-6-17 18:53 上傳
Mini開發板上有一個PC13引腳連接的LED燈,用CubeMX創建一個STM32F103C8Mini開發板的工程。MCU選擇 STM32F103C8Tx的芯片。
234503w98ubu18k189s1ss.jpg (53.14 KB, 下載次數: 91)
下載附件
2016-6-17 18:53 上傳
選擇好后點擊OK。界面中出現了芯片的引腳的分布圖。
234503i6yvzjtfv1br0jis.jpg (45.04 KB, 下載次數: 90)
下載附件
2016-6-17 18:53 上傳
選擇左上角的PC13,在下拉菜單中選擇GPIO_Output。
234504e9pvhas85a9asyu0.jpg (8.8 KB, 下載次數: 118)
下載附件
2016-6-17 18:53 上傳
選擇SYS節點,Debug,選擇Trace-Asynchronous_SW選項。
234504m9lv99a9gd1i86pn.jpg (20.1 KB, 下載次數: 83)
下載附件
2016-6-17 18:53 上傳
第二頁時鐘配置默認,第三頁Configuration,選擇GPIO按鈕,在彈出菜單中選中列表中的PC13,編輯下方的PC13配置參數,點擊OK。
234505u7ve3dvszv4devv3.jpg (58.56 KB, 下載次數: 92)
下載附件
2016-6-17 18:53 上傳
選擇Project,點擊Project Settings。選擇項目的保存目錄和項目名稱,并選擇IDE的(這里選擇MDK-ARM V5),選好后點擊OK,如下圖:
234506desdsqev6q1l766d.jpg (35.5 KB, 下載次數: 93)
下載附件
2016-6-17 18:53 上傳
參數選擇好后就創建代碼,Project--->GenerateCode
234506gyttdwvqwodzw5dv.jpg (8.14 KB, 下載次數: 85)
下載附件
2016-6-17 18:53 上傳
在創建源代碼進度條完成后,彈出代碼成功創建的對話框,點擊OpenProject用MDK程序打開項目。
234506ocintcb7t37ncnm0.jpg (18.58 KB, 下載次數: 83)
下載附件
2016-6-17 18:53 上傳
打開項目后,在Main.c文件中增加下列內容: ....... /* USER CODE BEGIN Includes */ #include "main.h" ...... /* USER CODE BEGIN 0 */ uint8_t sta = ON; static enum Enum_Delay delay = Delay_512; void LED_Glisten(); /* USER CODE END 0 */ ...........
|
............. /* USER CODE BEGIN 3 */ LED_Glisten(); ............
/* USER CODE BEGIN 4 */ void LED_Glisten() { LED(sta); sta = !sta; HAL_Delay(delay); } /* USER CODE END 4 */
|
在INC目錄中新增一個main.h文件
#ifndef MAIN_H_ #define MAIN_H_
enum Enum_Delay { Delay_512 = 512, Delay_256 = 256, Delay_128 = 128, Delay_64 = 64, Delay_32 = 32, Delay_16 = 16, Delay_8 = 8, Delay_4 = 4, Delay_2 = 2, Delay_1 = 1, Delay_0 = 0 };
#define ON 1 #define OFF 0
#define LED(STA) (STA)?HAL_GPIO_WritePin(LED_GPIO_Port,LED_Pin,GPIO_PIN_SET):HAL_GPIO_WritePin(LED_GPIO_Port,LED_Pin,GPIO_PIN_RESET)
#endif
|
這樣一個LED閃亮的程序就制作好了,經過編譯后就能下載到MINI開發板中了。 2、ST-LINK 與STM32F103C8 Mini開發板連接用跳線冒將Boot0和Boot1都連接到0條線柱上(接地),使用ST-LINK與F103C8Mini連接,連接方式如下圖:
234507q4hmzrt81mrvm48m.jpg (87.45 KB, 下載次數: 82)
下載附件
2016-6-17 18:53 上傳
上圖20PIN接口三角標識的是第一腳,Reset和TDO引腳是可選連接,連接好后,打開"STM32 ST-LINK Utility"軟件,在點擊Target---〉Connect連接后,顯示如下圖:
234507bzp1169p0kjx0e5g.jpg (49.34 KB, 下載次數: 95)
下載附件
2016-6-17 18:53 上傳
這樣就能通過ST-LINK擦除MINI開發板上的程序,給開發板下載程序了~~~~,當然ST-LINK的用法不僅如此,在KEIL軟件中,可以通過ST-LINK進行聯機調試。連接上ST-LINK后,啟動Keil ,啟動 “Flash”----〉Configure Flash Tools后。選擇Debug標簽頁,在Use下拉框中選擇 ST-LINK后點擊Settings。
234508eopww78lb7775p9l.jpg (50.52 KB, 下載次數: 85)
下載附件
2016-6-17 18:53 上傳
選擇Ort為SW,點擊確定,這時就可以使用ST-LINK調試代碼了。
234508jkzh4bymnkoby0bh.jpg (38.79 KB, 下載次數: 92)
下載附件
2016-6-17 18:53 上傳
選擇Debug---〉Start/Stop Debug Session 對前面小節中編寫的代碼進行調試。
234508uzpdhymrbpdvbc29.jpg (15.42 KB, 下載次數: 79)
下載附件
2016-6-17 18:53 上傳
3、JLINK 與STM32F103C8 Mini開發板連接用跳線冒將Boot0和Boot1都連接到0條線柱上(接地),使用J-LINK與F103C8Mini連接,連接方式如下圖:
234508m77jwrjpb7uhvlrh.jpg (81.05 KB, 下載次數: 84)
下載附件
2016-6-17 18:53 上傳
上圖20PIN接口三角標識的是第一腳,使用的J-LINK ARM-OB 的SWO方式與MINI開發板連接。連接好后,打開MDK軟件,選擇Debug標簽頁,在Use下拉框中選擇J-LINK后點擊Settings。
234509b8btb8a6epittiss.jpg (30.37 KB, 下載次數: 92)
下載附件
2016-6-17 18:53 上傳
選擇Ort為SW,點擊確定,這時就可以使用J-LINK調試代碼了。
234509rgg6teoygq4g7044.jpg (46.54 KB, 下載次數: 99)
下載附件
2016-6-17 18:53 上傳
選擇Debug---〉Start/Stop Debug Session 對前面小節中編寫的代碼進行調試。
234510iakfkifzdegbkzga.jpg (15.36 KB, 下載次數: 119)
下載附件
2016-6-17 18:53 上傳
4、ISP與STM32F103C8 Mini開發板連接使用ST-LINK和J-LINK都需要芯片的Boot0和Boot1置于低點平。除此之外,還有從SRAM啟動和系統存儲器啟動的方式,詳細設置如下表:
STM32三種啟動模式對應的存儲介質均是芯片內置的,它們是: | | | | | | | | | 芯片內部一塊特定的區域,叫做系統存儲器。芯片出廠時在這個區域預置了一段Bootloader,就是通常說的ISP程序。這個區域的內容在芯片出廠后沒有人能夠修改或擦除,即它是一個ROM 區。 |
我們可以設置Boot0為高點平, Boot1為低點平使用ISP來連接開發板,Boot0、Boot1如下圖所示:
234510nf9v41b9646t4n5d.jpg (75.29 KB, 下載次數: 77)
下載附件
2016-6-17 18:53 上傳
設置好BOOT0、Boo1條線帽后(并非下圖照片中的設置),用下圖連接方法來連接一個USB轉TTL串口的工具(如:CH340G等芯片工具)。
234511h2bdt8zi2gyygz2k.jpg (30.39 KB, 下載次數: 68)
下載附件
2016-6-17 18:53 上傳
234511la25jirgggatvcsm.jpg (6.88 KB, 下載次數: 77)
下載附件
2016-6-17 18:53 上傳
做好Boot0=1,Boot1=0準備,用串口TTL連接到MINI主板的準備工作后,連接USB,并啟動Demonstrator GUI 軟件。
234511l29e9hq3iq8yq81u.jpg (23.6 KB, 下載次數: 105)
下載附件
2016-6-17 18:53 上傳
在PortName的下拉框中選擇正確CH340G工具所在的端口號后,點擊下一步;
234512u7m52wwwdw5vuuin.jpg (26.76 KB, 下載次數: 71)
下載附件
2016-6-17 18:53 上傳
當出現“Targetis readable.....”時,代表已經于MINI開發板芯片連接上了,點擊下一步;
234513g7thh6h7520qq4m7.jpg (57.01 KB, 下載次數: 91)
下載附件
2016-6-17 18:53 上傳
這里就通過軟件讀取到MINI開發板的上STM32F103C8芯片內部的Flash信息,每個Flash塊大小1K,Page0到Page63總共64個塊區(地址0x0800,0000~0x0800,FFFF)。點擊下一步;
234513mguta7hzd3za8k34.jpg (37.9 KB, 下載次數: 89)
下載附件
2016-6-17 18:53 上傳
這里我們可以進行Flash擦除;或者下載HEX文件到Flash中進行程序更新;或者更新設備中的文件;或者進行保護設置;或編輯Flash的字節信息等功能。
三、實驗后的心得
在本文的試驗里,介紹了3種基本與開發板的鏈接方式,分別是ST-LINK、J-LINK以及TTL串口的ISP方式連接。通過這三種方式,在項目研發、產品設計時,就能通過開發工具實現軟件開發、程序調試等工作,以便對芯片內部或電路板上各種硬件資源進行操作;在某些產品設計中,還需要將這些接口預留出來便于軟件下載與升級。
本文PDF文檔下載:
6、STM32F103C8 Demo Board試驗心得.pdf
(2.18 MB, 下載次數: 21)
2016-6-17 17:03 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|