如何使用c#编写单片机程序
因为个人喜爱想研究单片机,但是不太会c,然后再找资料研究有没有其他的方法发现国外的c# nanoframework 框架可以编写单片机程序,本文我将会用自己踩过的坑来总结一些c#编写单片机的一些经验,希望帮到热爱c#的xd
首先第一步我们需要准备材料:
1. esp32 板子 支持wifi蓝牙的esp32板子,和安卓数据线如图:

2. 然后准备vs code, 和vs2022,本文将用vs2022做教程
准备好以后将esp32设备和电脑连接(安卓线连接)
开始搭建esp32的nanoframework 开发环境
打开vs code然后点击扩展

搜索 nanoframework 然后安装

安装完成以后;打开vs2022,点击继续但无需代码

点击管理扩展
搜索并安装nanoframework扩展,安装完成以后关闭整个vs2022

关闭vs2022以后后弹出这个安装扩展的界面点击安装

漫长的等待安装

安装完成重新打开vs2022

然后点击创建新项目

搜索nanoframework,然后点击第一个然后点击下一步

创建项目Demo示例点击创建
依次点击视图=》其他窗口=》Device Explorer

点击设置

全部点击两边全部点击(COM port black list:表示屏蔽COM)


然后关闭设置;我们在来到vs code中
找到刚刚vs2022创建的项目路径 并打开

安装c#的vscode扩展

注意!请先安装esp32驱动程序
ESP32链接:https://pan.baidu.com/s/1V90LMRk13ZaUMJxM2teXbw
提取码:ztip
安装 .NET nanoFramework固件闪存
dotnet tool install -g nanoff
成功安装后,将显示一条消息,显示用于调用该工具的命令以及安装的版本。类似于以下示例:You can invoke the tool using the following command: nanoff
Tool 'nanoff' (version '9.9.9') was successfully installed.
安装路径问题
️当安装在包含变音符号的路径中时,运行STM32设备命令的已知问题。这是由 STM32 多维数据集编程器中的一个已知错误引起的。例如,如果您的用户路径是这种情况,则必须将其安装在具有这些路径的位置。若要实现此目的,请使用以下 .NET Core CLI 命令,该命令指定了将安装该工具的路径:
nanoffdotnet tool install nanoff --tool-path c:\a-plain-simple-path-to-install-the-tool
请注意,如果您不与 STM32 设备一起使用,则此限制不适用。更新 .NET nanoFramework固件闪存
要更新 .NET nanoFramework固件 Flasher 工具,请使用以下 .NET Core CLI 命令:
ESP32 使用示例
有多个 ESP32 映像可用,其中一些是专门为目标构建的。请查看列表。
ESP32_PSRAM_REV0映像仅适用于 ESP32 系列的任何变体(带或不带 PSRAM)以及所有芯片修订版。您可以在此处阅读有关各种图像之间的差异的更多信息。
FEATHER_S2图像仅适用于暴露嵌入式 USB CDC 引脚的 ESP32-S2 系列的几乎所有变体。您可以在此处阅读有关各种图像之间的差异的更多信息。
使用时,您可以添加以使用特定图像。相反,如果您只是指定平台,则将根据所连接设备的功能选择最合适的图像。将显示与此类似的输出,以建议将要使用的图像:
nanoff--target MY_TARGET_NAME_HERE--platform esp32nanoffNo target name was provided! Using 'ESP32_REV0' based on the device characteristics.
某些 ESP32 开发板在进入引导加载程序模式时出现问题。这通常可以通过按住主板中的 BOOT/FLASH 按钮来克服。如果检测到这种情况,将显示以下警告:
*** Hold down the BOOT/FLASH button in ESP32 board ***
更新 ESP32 目标的固件
要将连接到 COM31 的 ESP32 目标的固件更新到最新的可用开发版本。
nanoff --update --target ESP32_PSRAM_REV0 --serialport COM3
使用本地 CLR 文件更新 ESP32-S2 KALUGA 1 的固件
使用本地 CLR 文件(例如从内部版本)更新连接到 COM31 的 ESP32-S2 KALUGA 1 目标的固件。此文件必须是具有来自生成的有效 CLR 的二进制文件。不会对文件内容执行任何其他检查或验证。
nanoff --update --target KALUGA_1 --serialport COM31 --clrfile "C:\nf-interpreter\build\nanoCLR.bin"
显示已连接 ESP32 设备的详细信息
显示连接到 COM31 的 ESP32 设备的详细信息。
nanoff --platform esp32 --serialport COM31 --devicedetails
nanoFramework固件闪存工具官方
nanoframework/nanoFirmwareFlasher: nano firmware flasher (.NET nanoFramework toolbox) (github.com)
链接:https://pan.xunlei.com/s/VMrXz6nf9tQBsdoKxOm_nYccA1
提取码:eidf迅雷云盘下载这个固件然后解压到D:\
nanoff --update --target KALUGA_1 --serialport COM31 --clrfile "D:\nanoCLR.bin"运行烧录程序烧录固件进去等待成功然后进入vs code
按住ctrl+shift+p ;然后搜索nanoframework 点击nanoframework flash device
等待一小会就会弹框

安装自己的esp32安装我安装是红色框框的





固件烧录完成
然后打开vs2022这个时候我们就可以看到设备了然后点击运行

好了运行完成

有喜欢c#单片机研究的朋友可以加我的q:239573049
如何使用c#编写单片机程序的更多相关文章
- JAVA、C、C++、Python同样是高级语言,为什么只有C和C++可以编写单片机程序?
JAVA.C.C++.Python这四种编程语言,前三种玩的比较多,python做为兴趣爱好或者玩脚本的时候弄过,编程语言在使用的时候主要还是适合不合适,单片机使用的场景属于功能简单,成本相对较低,现 ...
- CSharpGL(11)用C#直接编写GLSL程序
CSharpGL(11)用C#直接编写GLSL程序 +BIT祝威+悄悄在此留下版了个权的信息说: 2016-08-13 由于CSharpGL一直在更新,现在这个教程已经不适用最新的代码了.CSharp ...
- 在Linux上编写C#程序
自从C#开源之后,在Linux编写C#程序就成了可能.Mono-project就是开源版本的C#维护项目.在Linux平台上使用的C#开发工具为monodevelop.安装方式如下: 首先需要安装一些 ...
- 35.按要求编写Java程序: (1)编写一个接口:InterfaceA,只含有一个方法int method(int n); (2)编写一个类:ClassA来实现接口InterfaceA,实现int method(int n)接口方 法时,要求计算1到n的和; (3)编写另一个类:ClassB来实现接口InterfaceA,实现int method(int n)接口 方法时,要求计算n的阶乘(n
35.按要求编写Java程序: (1)编写一个接口:InterfaceA,只含有一个方法int method(int n): (2)编写一个类:ClassA来实现接口InterfaceA,实现in ...
- 如何让VS2013编写的程序
总体分c++程序和c#程序 1.c++程序 这个用C++编写的程序可以经过设置后在XP下运行,主要的“平台工具集”里修改就可以. 额外说明:(1)程序必须为Dotnet 4.0及以下版本.(XP只支持 ...
- 编写一个程序,求s=1+(1+2)+(1+2+3)+…+(1+2+3+…+n)的值
编写一个程序,求s=1+(1+2)+(1+2+3)+…+(1+2+3+…+n)的值 1 #import <Foundation/Foundation.h> 2 3 int main( ...
- 在Salesforce中通过编写C#程序调用dataloadercliq的bat文件取触发调用data loader来批量处理数据
通过这篇文章 http://www.cnblogs.com/mingmingruyuedlut/p/3413903.html 我们已经知道了Data Loader可以对Salesforce的Objec ...
- 转 : 用Delphi编写安装程序
http://www.okbase.net/doc/details/931 还没有亲自验证过,仅收藏 当你完成一个应用软件的开发后,那么你还需要为该软件做一个规范化的安装程序,这是程序设计的最后一步 ...
- 初学编写JAVA程序
一.编写JAVA程序 编写JAVA程序,输出一行文本信息:“Hello world”,选择编辑器eclipse,打开之后编写程序 public class Hello{ public static v ...
随机推荐
- 【LeetCode】280. Wiggle Sort 解题报告 (C++)
作者: 负雪明烛 id: fuxuemingzhu 个人博客:http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 排序后交换相邻元素 日期 题目地址:https://l ...
- 【LeetCode】67. Add Binary 解题报告(Python)
作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 BigInteger类 模拟加法 日期 题目地址:h ...
- Rikka with wood sticks(hdu5203)
Rikka with wood sticks Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/O ...
- 1336 - Sigma Function
1336 - Sigma Function PDF (English) Statistics Forum Time Limit: 2 second(s) Memory Limit: 32 MB S ...
- request参数获取,参数校验,参数处理
需求: 1.post接口,需要在过滤器中进行参数校验,校验通过之后再执行方法 2.原有代码中使用x-www-form-urlencoded传参,新需求要使用json格式 3.原有代码校验过滤器使用Se ...
- CS5216PIN TO PIN替换PS8402A方案|PS8402A电路设计原理图|CS5216芯片
PS8402A是HDMI 电平移位器/中继器专为2型双模Display Port(DP++)电缆适配器应用而设计.它设计用于Display Port到DVI或Display Port到HDMI的2型适 ...
- IT6516功能兼容芯片|DP转VGA方案|CS5202替代兼容IT6516
台湾联阳T6516是一种高性能的DP显示端口到VGA转换器方案芯片.IT6516结合DisplayPort接收器和三重DAC,通过转换功能支持DisplayPort输入和VGA输出.内置Display ...
- [Azure DevOps] 管理测试计划、测试套件和测试用例
我喜欢测试计划,它能让团队清楚测试进度,还能妥善分配测试人员,更重要的是它能保证测试质量和效率.Azure DevOps 里提供了 Test Plans 这个模块用于管理测试计划. 1. Azure ...
- docker查看容器的ip地址
查看Docker的底层信息. docker inspect 会返回一个 JSON 文件记录着 Docker 容器的配置和状态信息 # 列出所有容器的IP地址docker inspect --forma ...
- xshell 所选的用户密钥未在远程主机上注册;无法加载密钥
他山之石 https://zhuanlan.zhihu.com/p/92528287 安全起见,服务器最近的安全策略准备进行更改,逐渐由原来的密码登录更换为密钥登录认证. 于是今天把服务器上的id_r ...


