由于STM32L4 IoT
開發闆 已經內建了ST LINK V2.1 仿真器,是以都是通過
闆載的ST LINK V2.1 仿真器下載下傳,使用 ST LINKV2.1,結合 MDK,來給 STM32L4 下載下傳代碼。
ST LINK 支援
JTAG和
SWD 兩種通信接口,同時 STM32L475
也支援 JTAG 和 SWD。是以,我們有 2 種方式可以用來下載下傳代碼, 由于 JTAG 模式
占用的 IO 線比較多,我們闆載的 STLINK 與 MCU(STM32L475VET6)是
通過 SWD 連接配接的, 是以
一般選擇 SWD 模式來給STM32L475 下載下傳代碼。
首先,我們需要安裝 ST LINK 的驅動。驅動安裝,在安裝了 ST LINK 的驅動之後, 我們隻需要一根
Micro USB 線将開發闆的
ST_LINK USB接口與電腦進行
連接配接就可以了。
打開工程,點選 ,打開 Options for Target頁籤
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLicmbw5iNjNTYkVWOxkjZjlTZ3kzM1I2YmlDM2UDOkhzYkRDNi9CX0JXZ252bj91Ztl2Lc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
在 Debug 欄選擇仿真工具為 ST-Link Debugger,如圖所示:
上圖中我們還勾選了 Run to main(),該選項選中後,
隻要點選仿真就會直接運作到 main 函數,如果沒選擇這個選項,則會
先執行startup_stm32l475xx.s 檔案的
Reset_Handler,再跳到 main函數。
然後我們點選
Settings,設定
ST LINK的一些參數,如圖所示:
圖中,我們使用 ST LINK 的 SW 模式調試,因為我們 JTAG 需要占用比 SW 模式
多很多的 IO 口, 并且開發闆上
沒有預留 JTAG 接口。是以,我們建議大家在下載下傳/調試代碼的時候,
一定要選擇 SW 模式。 Max Clock 我們設定為最大: 4Mhz,這裡如果你的 USB 資料線
比較差,那麼可能會出問題,此時,可以通過
降低這裡的
速率來試試。單擊 OK,完成此部分設定,接下來還需要在
Utilities 頁籤裡面設定
下載下傳時的目标程式設計器,如圖所示:
圖中,我們直接勾選 Use Debug Driver,即和調試一樣,
選擇 ST LINK來給目标器件
的 FLASH 程式設計,然後點選 Settings,設定如圖所示:
這裡 MDK5 會
根據我們建立工程時
選擇的目标器件,
自動設定 flash 算法。我們使用的是STM32L475VET6, FLASH 容量為 512K 位元組,是以 Programming Algorithm 裡面預設會有 512K型号的 STM32L4xx_512KB FLASH 算法。
特别提醒: 這裡的 512Kflash 算法,不僅僅針對 512K 容量的 STM32L475,對于
小于 512KFLASH 的型号,
也是采用這個flash 算法的。最後,選中 Reset and Run 選項,以實作在程式設計後自動運作,其他預設設定即可。
設定完成之後,如圖所示。在設定完之後,點選 OK,然後再點選 OK,回到 IDE 界面,編譯一下工程。然後點選:(下載下傳按鈕),就可以下載下傳代碼到 STM32L475 上面了,如圖所示:
下載下傳完成後,在 Build Output 視窗,會提示
Programming Down,
Application running…,如圖所示:
下載下傳完後,會自動運作剛剛下載下傳的代碼(因為我們勾選了 Reset and run,見圖),接下來就可以打開序列槽調試助手,來驗證是否收到了 STM32L475 序列槽發送出來的資料。
由于開發闆上的 ST LINK
也具有序列槽功能, 程式下載下傳
和序列槽功能隻需要一根線就可實作,這裡就不需要另外接線,如果電腦上沒有安裝過 STM32 虛拟序列槽驅動,需要
先安裝驅動後電腦才能識别到序列槽(如果已經安裝過了驅動,則應該能在裝置管理器裡面
看到 USB 序列槽,如果不能則要先解除安裝之前的驅動,解除安裝完後重新開機電腦,再重新安裝我們提供的驅動) , 安裝該驅動即可,如圖所示:
在驅動安裝成功之後, 将開發闆斷電後重新上電或者拔掉 USB 線後重新插入電腦,此時電腦就會自動給其安裝驅動了。在安裝完成之後,可以在電腦的裝置管理器裡面
找到 USB 序列槽(如果找不到,則重新開機下電腦), 如圖所示:
在圖中可以看到, 這裡的 USB 序列槽被識别為 COM12,這裡需要注意的是:不同電腦可能不一樣,你的可能是 COM3、COM4 等,但是
STMicroelectronics STLINK Virtual CON Port,
這個一定是一樣的。
如果沒找到 USB 序列槽,則有可能是你
安裝有誤,或者
系統不相容。在安裝完 USB 序列槽驅動之後,我們就可以開始驗證了(注意, USART1 跳帽選擇處必須将
PA10、 PA9 分别與 TXD、 RXD 進行連接配接(如圖所示) ,
否則序列槽助手上是
看不到序列槽資訊的), 打開序列槽調試助手選擇 COM12(得根據你的實際情況選擇),設定波特率為 115200,會發現從 STM32L475 開發闆發回來的資訊,如圖所示:
接收到的資料和我們期望的是一樣的,證明程式沒有問題。至此, 說明我們下載下傳代碼成功了,并且從硬體上驗證了我們代碼的正确性。