用C#在STM32上写第一个Hello world

随着微软放弃.Net MF ,经过C#编写STM32 平台上的程序变得渺茫, 可是, 别着急, 目前至少有两个社区在作这件事情, 传承了微软的.Net MF , 一家是 nanoframework,另一家比较封闭的是 html

GHI Electronics 地址是: https://github.com/ghi-electronics  GHI只支持自家设计生产的开发板,不支持STM32其余厂商的开发板。所以最佳选择我认为是 nanoframework。 


实现Hello World 以前, 咱们须要作如下几步:

1、安装VS2019 ,在扩展菜单中搜索 nanoframework  git

2、选择开发板
github

    选择开发板很重要, 直接意味着你是否是能完成这件事, 好比笔者, 买了三个开发板, 一个型号不对, 一个快递丢了, 最后只有一个能用, 型号是STM32F411E-DISCO,他是是ST公司推出的一款针对STM32F411设计的开发板,可帮助您探索STM32F4系列,轻松开发本身的应用,还提供有完善的资料能帮助全部初学者和有经验开发人员快速上手。STM32F411E-DISCO基于STM32F411VET6设计,集成了ST-LINK/V2仿真下载器(但仅对外提供SWD接口),免除您另外采购仿真器或下载器的麻烦;还增添了陀螺仪、电子罗盘、数字麦克风、音频解码芯片、OTG USB、 LED和按钮等外设,方便您学习开发。。详细资料你能够访问 https://www.st.com/zh/evaluation-tools/32f411ediscovery.html 来了解!微信

  

3、烧写nanoframework app

  1. 从ST官网下载 STM32 ST-LINK Utility 并安装到你的计算机。 electron

  2. 要下载文章中指定的这款开发板固件, 须要前往  https://bintray.com/nfbot/nanoframework-images-community-targets/ST_STM32F411_DISCOVERY/_latestVersion 下载, 若是其余开发板请前往 https://github.com/nanoframework/nf-Community-Targets 或者   nanoFramework 下载开发板的固件 ,  链接会最终会引导你到 JFrog Bintray 库下载预编译好的nanoframework zip压缩包,下载完成后 而后解压他。 学习

  3. 最好是经过两根micro USB 链接线链接, 一根是USB type A 公口,mini-B 公口,用来经过TAG链接 ST-Link调试器, 另一根用来更好的供电, 但低电量模式也是能够的,另一个能够是 USB type A 公口,micro-B 公口,用来补充电能。 lua

  4. 启动 e ST-LINK Utility 链接你的ST开发板.spa

  5. 使用 "full chip erase" 清除闪存..net

  6. 文件中选择刚解压的压缩包中的文件 nanoBooter.hex , 而后点 "Program and verify" 按钮, 在点‘Start’按钮以前确保选中"Reset after programming" , 而后你可能能够看到 开发板上的led闪烁速度比之前较慢。 

  7. 紧接着, 打开文件nanoCLR.hex , 一样点击 "Program and verify" 按钮,并确保 "Reset after programming" 选中后再点击  "Start", 而后上传完成, MCU已经充值而且nanoCLR镜像将开始运行, 这时候LED灯再也不闪烁, 


4、经过串口链接你到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 完成。 


本文分享自微信公众号 - dotNET跨平台(opendotnet)。
若有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一块儿分享。

相关文章
相关标签/搜索