【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 ...
随机推荐
- webdriver中定位元素,报无法找到元素的问题
webdriver中定位元素,报无法找到元素的问题时,需要查看以下几点: 1 用火狐的firebug插件定位元素,确保这个元素的定位正确: 2 在火狐的firebug插件的,在html页签中输入fra ...
- mysql配置之skip-external-locking
转载:http://www.kuqin.com/database/20120815/328905.html MySQL的配置文件my.cnf中默认存在一行skip-external-locking的参 ...
- 1055. The World's Richest (25)
Forbes magazine publishes every year its list of billionaires based on the annual ranking of the wor ...
- 关于android端的json传输
比较通用的传输方法 import java.util.ArrayList; import java.util.List; import org.apache.http.HttpEntity; impo ...
- div居中
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- Jquery dialog属性
修改标题: $('#test').dialog("option","title", "测试").dialog('open'); 修改位置: ...
- strcat、strcpy、memcpy 的使用注意
char *p = "hello";//5 个长度 ; //char *str = (char *)malloc(sizeof(char)*len); ] = "niha ...
- 解决jsp中文乱码问题
1. 先解决响应中的乱码 何为响应中的乱码?把页面中的"username"改成"用户名"你就知道了. 所谓响应中的乱码,就是显示页面上的乱码,因为页面数据是从服 ...
- Android SDK 镜像站
Android SDK镜像的介绍使用 http://www.androiddevtools.cn 镜像站地址 由于一些原因,Google相关很多服务都无法访问,所以在很多时候我们SDK也无法升级 ...
- 20145337 《Java程序设计》第五周学习总结
20145337 <Java程序设计>第五周学习总结 教材学习内容总结 第八章 JAVA中的所有错误都会被包装成对象,如果你愿意,可以尝试执行并捕捉代表错误的对象后做一些处理.使用了try ...