用C#在STM32上写第一个Hello world
隨著微軟放棄.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 完成。?
總結
以上是生活随笔為你收集整理的用C#在STM32上写第一个Hello world的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SilkierQuartz 1.0.21
- 下一篇: 深入async/await知多少