隨着微軟放棄.Net MF ,通過C#編寫STM32 平台上的程序變得渺茫, 但是, 別着急, 目前至少有兩個社區在做這件事情, 傳承了微軟的.Net MF , 一家是 nanoframework,另外一家比較封閉的是
GHI Electronics 地址是: https://github.com/ghi-electronics GHI只支持自家設計生產的開發板, 不支持STM32其他廠商的開發板。因此最佳選擇我認為是 nanoframework。
實現Hello World 之前, 我們需要做以下幾步:
一、安裝VS2019 ,在擴展菜單中搜索 nanoframework
二、選擇開發板
選擇開發板很重要, 直接意味着你是不是能完成這件事, 比如筆者, 買了三個開發板, 一個型號不對, 一個快遞丟了, 最后只有一個能用, 型號是STM32F411E-DISCO,他是是ST公司推出的一款針對STM32F411設計的開發板,可幫助您探索STM32F4系列,輕松開發自己的應用,還提供有完善的資料能幫助所有初學者和有經驗開發人員快速上手。STM32F411E-DISCO基於STM32F411VET6設計,集成了ST-LINK/V2仿真下載器(但僅對外提供SWD接口),免除您另外采購仿真器或下載器的麻煩;還增添了陀螺儀、電子羅盤、數字麥克風、音頻解碼芯片、OTG USB、 LED和按鈕等外設,方便您學習開發。。詳細資料你可以訪問 https://www.st.com/zh/evaluation-tools/32f411ediscovery.html 來了解!
三、燒寫nanoframework
-
從ST官網下載 STM32 ST-LINK Utility 並安裝到你的計算機。
-
要下載文章中指定的這款開發板固件, 需要前往 https://bintray.com/nfbot/nanoframework-images-community-targets/ST_STM32F411_DISCOVERY/_latestVersion 下載, 如果其他開發板請前往 https://github.com/nanoframework/nf-Community-Targets 或者 nanoFramework 下載開發板的固件 , 連接會最終會引導你到 JFrog Bintray 庫下載預編譯好的nanoframework zip壓縮包,下載完成后 然后解壓他。
-
最好是通過兩根micro USB 連接線連接, 一根是USB type A 公口,mini-B 公口,用來通過TAG連接 ST-Link調試器, 另外一根用來更好的供電, 但低電量模式也是可以的,另外一個可以是 USB type A 公口,micro-B 公口,用來補充電能。
-
啟動 e ST-LINK Utility 連接你的ST開發板.
-
使用 "full chip erase" 清除閃存.
-
文件中選擇剛解壓的壓縮包中的文件 nanoBooter.hex , 然后點 "Program and verify" 按鈕, 在點‘Start’按鈕之前確保選中"Reset after programming" , 然后你可能可以看到 開發板上的led閃爍速度比以前較慢。
-
緊接着, 打開文件nanoCLR.hex , 同樣點擊 "Program and verify" 按鈕,並確保 "Reset after programming" 選中后再點擊 "Start", 然后上傳完成, MCU已經充值並且nanoCLR鏡像將開始運行, 這時候LED燈不再閃爍,
四、通過串口連接你到VS
在能通過VS調試之前, 你需要一個 串口轉USB的適配器,將PA2 接在 USART2_TX, PA3 接在USART2_RX 並且將 GND 也同樣接在開發板上。 我選擇的設備信號是 FT232 USB UART Board (mini) , 如果你身邊有同類的, 則不需要, 之所以買它是因為手頭沒有杜邦線,他具備如下特性:
-
采用原裝FT232RL
-
支持Mac、Linux、Android、WinCE、Windows 7/8/8.1/10...
-
支持3種供電模式:5V對外供電;3.3V對外供電;由外部供電(要求3.3V-5V)
-
帶3個LED:TXD LED、RXD LED、POWER LED
-
TXD、RXD、RTS#、CTS#:采用彎排針引出
-
其余功能PIN:預留焊盤(配送排針、排座,可上插或下插接入用戶系統;PIN間距支持插入萬用板)
用說明:
-
VCCIO:輸出3.3V或5V(模塊由USB供電,須將跳線帽跳到3.3V或5V)
-
GND:接GND
-
TXD:接MCU.RX ( 信號流向:MCU.RX << FT232 << PC.TX )
-
RXD:接MCU.TX ( 信號流向:MCU.TX >> FT232 >> PC.RX )
-
RTS:接MCU.CTS ( 信號流向:MCU.CTS << FT232 << PC.RTS )
-
CTS:接MCU.RTS ( 信號流向:MCU.RTS >> FT232 >> PC.CTS )
注意:本產品不帶USB線。該模塊為USB轉TTL電平,切勿直連RS232電平,以免燒壞模塊。我購買的型號如下圖所示:
整體連接起來示意圖如下:
紅線接電 , 黑線接地, 橙色線接PA3, 黃色線接在PA2,
USB type A公口接筆記本, mini-B 公口從開發板上拔下來, 接在串口轉USB的接口上。
五,VS中查找設備:
啟動VS2019 , 確保之前擴展已經裝好, 然后在視圖菜單的 其他窗口中找到 Device Explorer ,如下圖所示:
插上我們的開發板, 稍等片刻后自動尋找到開發板, 如下圖所示:
現在開始, 我們創建第一個項目Hello World ,
創建后, 第一件事情應該是進nuget管理器中, 將 nanoFramework.CoreLibrary 升級為 最新版本,
如下圖:
開始運行
此時, 你的第一個 在STM32上的C# Hello World 完成。