用C#为国产智能手表写“Hello, China. ”

      在此之前, 我写过几篇如何使用C#编写STM32程序的例子, 那么同样, ESP32下我们也可以使用C#,我们依然仰仗于一直在发展壮大的 .Net nanoFramework , 目前他支持的开发板越来越多 , 支持的芯片种类也越来越多, 而且相关的库也越来越多, 所支持的器件完全可以支撑常规应用开发。90%的器件均可在淘宝购买。

       在前段时间闲逛GitHub时发现深圳芯元电子的 LILYGO® T-WATCH-2020 V3 已经被nanoFramework 所支持, 并在支持的列表中。 这让我对nanoFramework 备受鼓舞, 写下此文章, 希望有助于大家低门槛进入ESP32 的开发。 

        首先, 你需要淘宝上买一个设备, 我选的是  LILYGO® T-WATCH-2020 V3  +  CH9102F  , 淘宝上可以搜到。在LILYGO的官方淘宝店就可以买到, 二百多块, 相比STM32的开发版来说, 便宜到爆。 拿到东西后充电,开机, 对自带界面没太多操作的想法, 因为要用LVGL做好一个可操作界面, 用起来跟苹果或者安卓一样, 这需要耗费大量美工和C程序员的大量时间,所以,作为一个智能手表开发板来说, 他已经演示了所有的功能, 所以, 二话不说我们直接刷固件。 

  1. 安装nanoff , 他是个nanoFramework 刷bootloader 和 nanoCLR 的工具, 有了他, 你才可以通过Visual Studio 开发工具发现,命令: 

     dotnet tool install -g nanoff

    安装完成后提示 

可使用以下命令调用工具: nanoff 

已成功安装工具“nanoff”(版本“2.1.7”)。

2. 使用命令  nanoff --listports  查看你的设备串口是否连接。 

d548b12a601ac8cf0b1649a60ed89b16.png

3. 刷固件   platform  用来指定平台, 比如stm32 或者 stm32 等,serialport 指定串口,  update 的意思就是更新固件, target 就是指定已支持的目标开发板名称, 如果不指定 nanoff 会根据platform 自动指定一个。

nanoff --platform esp32 --serialport COM3 --update --target ESP32_LILYGO

 注意, 这里有个不完善的地方, 如果你指定了 ESP32_LILYGO , 在VS中就无法发现他, 可能是固件没有兼容好的问题, 如果使用默认ESP32 就没有这个问题。关于这点, 我已经在相关帖子内提出了, 大家可以在遇到此问题时 跟帖 https://github.com/nanoframework/Home/issues/803#issuecomment-1186216641

如果成功, 界面应该是如下显示。 

ef7feeee524773022c1c39f7a6ae7dc9.png

4. 打开Visual Studio   , 你需要安装 .NET nanoFramework Extension ,这样你才能够在新建项目时选择nanoFramework 的项目, 如下图:

6495b8b1149de806d309d5083f1d8819.png

  新建项目后, 项目基本结构如下:

e1346d6f21df4cb9fb03f2b2eaf1a31a.png

此时, 我们需要点开 nanoFramework的设备查看器, 插上你的手表。 

fad3e854aeee69714a6d322328aacaaf.png

, 现在点击 

5cc03dea0a322e22d7a81be7e4fef457.png

启动后, 如下:

b16abceb7f86fb5b0dcaba0f74b1f01a.png

至此, 你的第一行代码实现, wifi、界面、数据采集, 你需要做大量工作。 但总算开头了, 希望你能从中找到乐趣。祝你好运。 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/284689.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python将list存为csv文件

#!/usr/bin/env python # -*- encoding: utf-8 -*-import sys import json import os import pandas as pd""" description:将list存为csv文件 param {*} return {*} """staticmethod def list_to_csv(list_data, csv_file):if len(list_data) &…

【BIM入门实战】Revit入门基础知识选择题带答案解析(116题)

1、在Revit同一个界面同时打开多个视图的快捷键是( )。 A、 WT B、 WA C、 WC D、 WD 答案: A 2、Revit样板文件的后缀名是( )。 A、 .rvt B、 .rte C、 .rfa D、 .ifc 答案: B 3、标高、轴网创建的快捷键分别是( )。 A、 AL LL B、 LL GR C、 AR MM D、 LL TR 答案…

数据迁移 (选做)

1. pip install flask-migrate #Flask-Migrate 是一个数据迁移框架,需要通过Flask-script库来操作. 2. pip install flask-script #通过命令行来操作Flask 3. 新建模型更改文件:manage.py from flask_script import Managerfrom flask_migrate import Migrate, Mi…

Flex4项目html-template文件夹解析

每个Flex的web应用程序项目都包含一个名为html-template文件夹。这个文件夹包含HTml模板和在浏览器中运行程序的支持文件。 每当你更改保存到你的源代码,Flash Builder会自动重建应用程序使用的HTML模型文件并生成一个HTML包。同时,它把HTML模板文件夹的…

驱动之LCD的介绍与应用20170209

本文主要介绍的是LCD的介绍与应用,直接看个人笔记即可: 转载于:https://www.cnblogs.com/yuweifeng/p/6382551.html

.NET 序列化枚举为字符串

默认情况下,枚举是以其整数形式进行 JSON 序列化,这通常会导致与消费者应用缺乏互操作性,因为他们需要事先了解这些数字的实际含义。因此,我们希望它们在一些情况下以字符串的形式进行序列化。本文将讲解实现这一目标的各种方法。…

ArcGIS实验教程——实验四十四:ArcGIS地图浮雕效果制作完整案例教程

ArcGIS制作地图时可以制作出很多很炫的效果,比如地图阴影、地图晕渲效果、浮雕效果、三维效果等等。本实验讲解在ArcGIS中制作浮雕效果地图,效果如下所示: 扩展阅读:【ArcGIS Pro微课1000例】0016:ArcGIS Pro 2.8浮雕效果地图制图案例教程 1. 加载矢量数据 加载实验数据包…

Mysql,SqlServer,Oracle主键自动增长的设置

参考文献 http://blog.csdn.net/andyelvis/article/details/2446865 1、把主键定义为自动增长标识符类型 MySql 在mysql中,如果把表的主键设为auto_increment类型,数据库就会自动为主键赋值。例如: create table customers(id int auto_incre…

Chapter 3 Phenomenon——19

His unfriendliness intimidated me. 他的不友好恐吓到了我。 My words came out with less severity than Id intended. 我说出来的言辞比我打算的要不严厉一些。 我说出的话远远没有达到我所想要的充满火药味的效果。 "You owe me an explanation," I reminded him…

Javascript 面向对象编程(一):封装

Javascript是一种基于对象(object-based)的语言,你遇到的所有东西几乎都是对象。但是,它又不是一种真正的面向对象编程(OOP)语言,因为它的语法中没有class(类)。 那么&am…

【ArcGIS Pro微课1000例】0016:ArcGIS Pro 2.8浮雕效果地图制图案例教程

ArcGIS Pro制作地图时可以制作出很多很炫的效果,比如地图阴影、地图晕渲效果、浮雕效果、三维效果等等。本实验讲解在ArcGIS Pro 2.8中制作浮雕效果地图,效果如下所示: 【参考阅读】:ArcGIS实验教程——实验四十四:ArcGIS地图浮雕效果制作完整案例教程 1. 加载矢量数据 …

用正则实现多行文本合并,从而保存为csv文件

有如下文本,想实现每三行合并为一行,最终生成csv文件 分数 人数 累计人数 661及以上 23 23 660 3 26 659 5 31 658 5 36 657 9 45 656 10 55 655 4 59 654 6 65 653 15 80查找项: ^(.) ^(.) ^(.)替换项: $1,$2,$3替换结果&…

聊一聊 C# 后台GC 到底是怎么回事?

一:背景 写这一篇的目的主要是因为.NET领域内几本关于阐述GC方面的书,都是纯理论,所以懂得人自然懂,不懂得人也没法亲自验证,这一篇我就用 windbg 源码 让大家眼见为实。二:为什么要引入后台GC 1. 后台GC到…

【BIM入门实战】Revit中的墙体层次以及常见问题解答

一、Revit墙体的层次 1. Revit墙体的层次如图 Revit绘制墙体时,要先选择定位线,可以选核心层中心线,也可以选墙中心线,当墙体为对称时,核心层中心线与墙中心线会重合。 2. 具体层次 1)结构[1]:必须在核心边界内 2)衬底[2]:其他材质基础的材料,如胶合板或石膏板 3…

Spring Boot 使用Redis

转载自:http://www.cnblogs.com/ityouknow/p/5748830.html Redis支持更丰富的数据结构,例如hashes, lists, sets等,同时支持数据持久化。除此之外,Redis还提供一些类数据库的特性,比如事务,HA,主…

工具链接

OmniGraffle Pro 7.0.2 Mac中文破解版 | 史蒂芬周的博客        http://www.sdifenzhou.com/omnigrafflepro702.html 转载于:https://www.cnblogs.com/wfwenchao/p/6393097.html

FlashCache初体验

FlashCache初体验 注意: 测试用的是CentOS6.5 内核版本2.6.32-431.el6.x86_64 步骤: 上传CentOS6.5做本地yum源,安装以下包。 yum install gcc yum install *kernel* yum install perl 将flashcache master打包下载至测试机上,可以…

用python将指定目录下的所有json文件合并成一个csv文件

#!/usr/bin/env python # -*- encoding: utf-8 -*-import sys import json import os import pandas as pd import csv""" 获取文件名列表 """ def list_file_names(folder):exist_files os.listdir(folder)file_list []for f in exist_files:…

【系统设计】分布式键值数据库

键值存储 ( key-value store ),也称为 K/V 存储或键值数据库,这是一种非关系型数据库。每个值都有一个唯一的 key 关联,也就是我们常说的 键值对。常见的键值存储有 Redis, Amazon DynamoDB,Microsoft Azure Cosmos DB&#xff0c…

keras系列︱Application中五款已训练模型、VGG16框架(Sequential式、Model式)解读(二)...

引自:http://blog.csdn.net/sinat_26917383/article/details/72859145 中文文档:http://keras-cn.readthedocs.io/en/latest/ 官方文档:https://keras.io/ 文档主要是以keras2.0。 . . Keras系列: 1、keras系列︱Sequential与Mo…