【Arduino】使用C#实现Arduino与电脑进行串行通讯


port.Encoding )
{
value = port.ReadExisting();
}
}
catch (Exception ex)
{
MessageBox.Show("读取串口数据发生错误:" + ex.Message, "提示信息", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
return value;
}
/// <summary>
/// 在读取到数据时刷新文本框的信息
/// </summary>
private void RefreshInfoTextBox()
{
string value = this.ReadSerialData();
Action<string> setValueAction = text => this.txtInfo.Text += text;
if (this.txtInfo.InvokeRequired)
{
this.txtInfo.Invoke(setValueAction, value);
}
else
{
setValueAction(value);
}
}
boolean sendFlag = false;//指示是否允许通过串口发送数据
String serialString = "";//串口数据缓存字符串
serialString.reserve();//初始化字符串
}
void loop()
{
int lightValue = analogRead(A0);//从A0口读取光线传感器的值
if(readCompleted)//判断串口是否接收到数据并完成读取
{
Serial.print("read value:");
Serial.println(serialString);//将读取到的信息发送给电脑
if(serialString == "serial start")//当读取到的信息是"serial start"时,设置发送标志设置为true
{
sendFlag = true;
}
else if(serialString == "serial stop")//当读取到的信息是"serial stop"时,设置发送标志设置为false
{
sendFlag = false;
}
serialString = "";
}
if(sendFlag)//如果允许通过串口发送数据,则点亮LED并发送数据,否则关闭LED
digitalWrite(pinLed, HIGH);
Serial.print();//延时1000ms
}
void serialEvent()//串口事件处理方法,参考:http://arduino.cc/en/Tutorial/SerialEvent
{
while(Serial.available())//参考://arduino.cc/en/Serial/Available
{
char inChar = (char)Serial.read();
if(inChar != '\n')//以换行符作为读取结束标志
{
serialString += inChar;
}
else
{
readCompleted = true;
}
}
}
【Arduino】使用C#实现Arduino与电脑进行串行通讯的更多相关文章
- Arduino学习笔记① 初识Arduino
1.前言 近段时间,博主陆续更新了ESP8266学习笔记,主要开发平台是Arduino.但是,对于很多无基础的初学者来说,甚至不了解Arduino是什么.因此,博主决定加入一个Arduino学 ...
- Arduino 串行外设接口(SPI)
时间有限有其他项目工作在忙,感觉作者写的不错,就先记录下来了. 这几天用SPI--Arduino 在供应商的电子原件上游离游走,重要的是可以读写了, 下面是在查资料看到的一篇不错的文章关于用Ardui ...
- Arduino 串行外设接口——W3Cschool
来源:https://www.w3cschool.cn/arduino/arduino_serial_peripheral_interface.html Arduino 串行外设接口 由 drbear ...
- http请求抓包神器-Fiddler(记录和检查你电脑的所有http通讯)
Fiddler是做什么的,能帮助我们做什么? 1.能够监听http/httpS的流量,可以截获从浏览器或者客户端软件向服务器发送的http/https请求: 2.对截获之后的请求,我们还能够查看请求中 ...
- 指示灯组与3个复位按钮的介绍Arduino Yun快速入门教程
指示灯组与3个复位按钮的介绍Arduino Yun快速入门教程 1.4.2 指示灯组 指示灯组的放大图如图1.5所示. 图1.5 指示灯组 各个指示灯对应的功能如下: q RX:对应于0号端口, ...
- 【雕爷学编程】Arduino动手做(50)---W25Q64存储模块
37款传感器与模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止37种的.鉴于本人手头积累了一些传感器和模块,依照实践(动手试试)出真知的理念,以学习和交流为目的,这里准备 ...
- Arduino 与 SPI 结合使用 以及SPI 深层理解
本文主要讲解两部分内容,不做任何转发,仅个人学习记录: 一. Arduino 与 SPI 结合使用 : 二. SPI 深层理解 有价值的几个好的参考: 1. 中文版: https://blog.cs ...
- 总线SPI的Arduino库函数
来源参考:https://www.cnblogs.com/MyAutomation/p/9348480.html 总线SPI的Arduino库函数 SPI基本知识 SPI:高速同步串行口.是一种标准的 ...
- I2C总线的Arduino库函数
I2C总线的Arduino库函数 I2C即Inter-Integrated Circuit串行总线的缩写,是PHILIPS公司推出的芯片间串行传输总线.它以1根串行数据线(SDA)和1根串行时钟线(S ...
随机推荐
- 20145330《Java程序设计》第五次实验报告
20145330<Java程序设计>第五次实验报告 实验五 Java网络编程及安全 实验内容 1.掌握Socket程序的编写: 2.掌握密码技术的使用: 3.设计安全传输系统 4.结队伙伴 ...
- PHP 高效分布代码转的
在<efficient pagination using mysql>中提出的clue方式. 利用clue方法,给翻页提供一些线索,比如还是SELECT * FROM `csdn` ord ...
- Nodejs中cluster模块的多进程共享数据问题
Nodejs中cluster模块的多进程共享数据问题 前述 nodejs在v0.6.x之后增加了一个模块cluster用于实现多进程,利用child_process模块来创建和管理进程,增加程序在多核 ...
- 用c#实现$.now()(1437813924915)的时间效果
Convert.ToInt64((DateTime.UtcNow - Convert.ToDateTime("1970-01-01")).TotalMilliseconds)
- [CareerCup] 15.6 Entity Relationship Diagram 实体关系图
15.6 Draw an entity-relationship diagram for a database with companies, people, and professionals (p ...
- ThinkPHP的URL优化
在刚刚安装好tp框架时,我们的路径一般是这样的: http://localhost/index.php/Home/Index/index?name=cly 我们可以通过下面一步步的步骤来优化这个路径 ...
- HDU 1018 大数(求N!的位数/相加)
Big Number Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total ...
- daterangepicker 日期范围插件自定义 可选 年份
minDate:'01/01/2012',maxDate:'01/01/2015' $("#txtPODate").daterangepicker({ singleDatePick ...
- Eclipse序列号生成代码
import java.io.*; public class MyEclipseGen { private static final String LL = "Decompiling thi ...
- python 字符串与数字之间的转换
1.数字转字符串 i = 123 str = ‘%d’ %i str即为转换成的字符串 2.字符串转换成数字: import string tt='555' ts=string.atoi(tt) ts ...