如何使用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
复制一下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#编写单片机程序相关推荐
- 垃圾,还用汇编写单片机程序?
01 前言 大家好,我是张巧龙,上次写了 一篇关于C语言的文章:居然还有大学在大一上C语言课? 有同学留言: 突然想起来,单片机和汇编确实也挺有意思. 写单片机程序到底用汇编还是C,也是一直存在的争 ...
- 用计算机控制单片机的程序编写,单片机程序编写步骤
单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上.相当于一个微型的计算机,和计算机相比,单片机只缺少了I/O设备.概括的讲:一块芯片就成了一台计算机.它的体 ...
- keil用c语言怎么编辑器,用keil软件编写单片机程序的步骤
猜你感兴趣: 新手教程:单片机的学习实践步骤 运用单片机便是了解单片机硬件结构,以及内部资源的运用,在汇编或C语言中学会各种功用的初始化设置,以及完成各种功用的程序编制. 运用按钮输入信号,发光二极管 ...
- canopen c++程序编写_JAVA、C、C++、Python同样是高级语言,为什么只有C和C++可以编写单片机程序?...
从事编程十几年,JAVA.C.C++.Python这四种编程语言都玩过,前三种玩的比较多,python做为兴趣爱好或者玩脚本的时候弄过,编程语言在使用的时候主要还是适合不合适,单片机使用的场景属于功能 ...
- 嵌入式--深入理解单片机(一)单片机程序是如何运行起来的以及单片机的ROM和RAM
目录 一.两种处理器的结构体系 1.哈佛结构体系(Harvard architecture) 2.冯·诺依曼结构体系 3.两种结构的总结 哈佛结构的优势 冯·诺依曼结构的优势 当前很多芯片都是混合结构 ...
- 单片机长时间程序跑飞_单片机程序跑飞的三种现象、原因及解决方法
今天在编写单片机程序的时候,由于中断服务程序写的不好,导致单片机程序总是跑飞,最后费了好长时间,花了很大功夫才找到问题原因,由此总结了单片机程序跑飞的三种现象.原因及解决方法. 一.数组越界(数组溢出 ...
- 驱动开发(一)——(单片机程序、Linux应用程序与驱动程序分析)
文章目录 前言 157准备工作 配置交叉编译链 编译内核 编译解压glibc 单片机程序 应用程序 驱动程序 三者的关系 前言 学习资料,跟的韦东山老师的视频,大家可以上百问网下载资料 百问网. 我使 ...
- 利用PROGISP实现ARDUINO IDE编写的程序的下载以及如何把AVR单片机做成ARDUINO板
首先讲讲题目的由来吧.我做的东西原本是利用ARDUINO MEGA2560及各种模块搭建起来的,程序自然也是用ARDUINO IDE写的.但这种东拼西凑的产品自然不够好,更主要的是,之前ARDUINO ...
- 编写51单片机程序,输出方波,at89s52的单片机
编写51单片机程序,输出方波. 要求:晶振为12MHz,用T0做定时器,在P1的低四位输出四种频率的方波: P1.3 = 1.25kHz.P1.2 = 2.5kHz.P1.1 = 5kHz.P1.0 ...
最新文章
- python只读打开文件_Python 文件只读打开模式是???????????????????????????????????????
- 为Win7 Win8右键菜单发送到添加常用位置(SendTo)
- Linux 中的文件压缩与解压
- vim与外部文件的粘帖复制
- 如何用一行代码画个迷宫?
- 【Linux】Centos7重启网卡失败
- 大文件上传 之 改版了的SlickUpload.HttpUploadModule(Krystalware.SlickUpload.dll)
- mysql中null与“空值”的坑
- php arrayfillkeys,PHP中的array_fill_keys()函数
- 技术员 Ghost Win 7 Sp1(X86/X64)旗舰加强版201804
- 四、博客详情页完成《iVX低代码仿CSDN个人博客制作》
- 批量合并txt文件中的数据
- 不积跬步,无以至千里
- [读书笔记]高效15法则 谷歌、苹果都在用的深度工作法
- eCharts二三维地图总结
- MySQL中出现Duplicate entry 'XXX' for key 'PRIMARY'解决方案
- 我犯了一个低级的C++的逻辑错误
- 深圳软件测试培训:刚入行的软件测试工程师如何自学软件测试?
- MYSqL测试题2_MySQL 练习题2 参考答案
- 【网络是怎么连接的】第四章 探索接入网和网络运营商
热门文章
- 吴继业:LinkedIn商业分析部如何运用大数据实现商业价值
- SQL Server 2008之DMF
- redhat enterprise linux 5 上安装openoffice3.0 1
- linux汇编中的注释,Linux 汇编器:对照 GAS 和 NASM
- JMeter中添加dubbo相关插件异常问题解决
- 程序员必须知道的HTML常用代码有哪些?
- [ActionScript 3.0] 安全沙箱的类型sandboxType,判断当前程序是AIR还是web程序
- RFileWriteStream 写入汉字
- AJAX+JavaScript无刷新检查用户名
- 捕鱼达人java源代码解析_捕鱼达人源码Java