因为个人喜爱想研究单片机,但是不太会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

复制一下GitHub镜像 nanoframework/nf-interpreter: nanoFramework Interpreter, CLR, HAL, PAL and reference target boards (github.com)https://github.com/nanoframework/nf-interpreter

安装 .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 命令,该命令指定了将安装该工具的路径:nanoff

dotnet 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 esp32nanoff

No 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:

如何使用c#编写单片机程序相关推荐

  1. 垃圾,还用汇编写单片机程序?

    01  前言 大家好,我是张巧龙,上次写了 一篇关于C语言的文章:居然还有大学在大一上C语言课? 有同学留言: 突然想起来,单片机和汇编确实也挺有意思. 写单片机程序到底用汇编还是C,也是一直存在的争 ...

  2. 用计算机控制单片机的程序编写,单片机程序编写步骤

    单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上.相当于一个微型的计算机,和计算机相比,单片机只缺少了I/O设备.概括的讲:一块芯片就成了一台计算机.它的体 ...

  3. keil用c语言怎么编辑器,用keil软件编写单片机程序的步骤

    猜你感兴趣: 新手教程:单片机的学习实践步骤 运用单片机便是了解单片机硬件结构,以及内部资源的运用,在汇编或C语言中学会各种功用的初始化设置,以及完成各种功用的程序编制. 运用按钮输入信号,发光二极管 ...

  4. canopen c++程序编写_JAVA、C、C++、Python同样是高级语言,为什么只有C和C++可以编写单片机程序?...

    从事编程十几年,JAVA.C.C++.Python这四种编程语言都玩过,前三种玩的比较多,python做为兴趣爱好或者玩脚本的时候弄过,编程语言在使用的时候主要还是适合不合适,单片机使用的场景属于功能 ...

  5. 嵌入式--深入理解单片机(一)单片机程序是如何运行起来的以及单片机的ROM和RAM

    目录 一.两种处理器的结构体系 1.哈佛结构体系(Harvard architecture) 2.冯·诺依曼结构体系 3.两种结构的总结 哈佛结构的优势 冯·诺依曼结构的优势 当前很多芯片都是混合结构 ...

  6. 单片机长时间程序跑飞_单片机程序跑飞的三种现象、原因及解决方法

    今天在编写单片机程序的时候,由于中断服务程序写的不好,导致单片机程序总是跑飞,最后费了好长时间,花了很大功夫才找到问题原因,由此总结了单片机程序跑飞的三种现象.原因及解决方法. 一.数组越界(数组溢出 ...

  7. 驱动开发(一)——(单片机程序、Linux应用程序与驱动程序分析)

    文章目录 前言 157准备工作 配置交叉编译链 编译内核 编译解压glibc 单片机程序 应用程序 驱动程序 三者的关系 前言 学习资料,跟的韦东山老师的视频,大家可以上百问网下载资料 百问网. 我使 ...

  8. 利用PROGISP实现ARDUINO IDE编写的程序的下载以及如何把AVR单片机做成ARDUINO板

    首先讲讲题目的由来吧.我做的东西原本是利用ARDUINO MEGA2560及各种模块搭建起来的,程序自然也是用ARDUINO IDE写的.但这种东拼西凑的产品自然不够好,更主要的是,之前ARDUINO ...

  9. 编写51单片机程序,输出方波,at89s52的单片机

    编写51单片机程序,输出方波. 要求:晶振为12MHz,用T0做定时器,在P1的低四位输出四种频率的方波: P1.3 = 1.25kHz.P1.2 = 2.5kHz.P1.1 = 5kHz.P1.0 ...

最新文章

  1. python只读打开文件_Python 文件只读打开模式是???????????????????????????????????????
  2. 为Win7 Win8右键菜单发送到添加常用位置(SendTo)
  3. Linux 中的文件压缩与解压
  4. vim与外部文件的粘帖复制
  5. 如何用一行代码画个迷宫?
  6. 【Linux】Centos7重启网卡失败
  7. 大文件上传 之 改版了的SlickUpload.HttpUploadModule(Krystalware.SlickUpload.dll)
  8. mysql中null与“空值”的坑
  9. php arrayfillkeys,PHP中的array_fill_keys()函数
  10. 技术员 Ghost Win 7 Sp1(X86/X64)旗舰加强版201804
  11. 四、博客详情页完成《iVX低代码仿CSDN个人博客制作》
  12. 批量合并txt文件中的数据
  13. 不积跬步,无以至千里
  14. [读书笔记]高效15法则 谷歌、苹果都在用的深度工作法
  15. eCharts二三维地图总结
  16. MySQL中出现Duplicate entry 'XXX' for key 'PRIMARY'解决方案
  17. 我犯了一个低级的C++的逻辑错误
  18. 深圳软件测试培训:刚入行的软件测试工程师如何自学软件测试?
  19. MYSqL测试题2_MySQL 练习题2 参考答案
  20. 【网络是怎么连接的】第四章 探索接入网和网络运营商

热门文章

  1. 吴继业:LinkedIn商业分析部如何运用大数据实现商业价值
  2. SQL Server 2008之DMF
  3. redhat enterprise linux 5 上安装openoffice3.0 1
  4. linux汇编中的注释,Linux 汇编器:对照 GAS 和 NASM
  5. JMeter中添加dubbo相关插件异常问题解决
  6. 程序员必须知道的HTML常用代码有哪些?
  7. [ActionScript 3.0] 安全沙箱的类型sandboxType,判断当前程序是AIR还是web程序
  8. RFileWriteStream 写入汉字
  9. AJAX+JavaScript无刷新检查用户名
  10. 捕鱼达人java源代码解析_捕鱼达人源码Java