Arduino Serial系列函数 有关print read 的总结

总结一下 在学习arduino  srial函数时 的几个知识点:

/*** 汇总一下Serial.print输出的一些情况,后面部分要和Serial.read配合使用;* 1. print 输出字符 和int数的结果,* 2. print 输出字符串和一连串的数字* 3. read 读取一个字符 再输出* 4. read 读取一个数字 再输出* 5.如何读取多个数字再输出* 6.如何读取多个字符再输出*/char charDanzifu = 'a';int  intXiaozhengshu1 = 9;int intXiaozhengshu2 = 19;int intDazhengshu1= 0X1111;int intDazhengshu2 = 0X22221;char intChar1 = 16;char intChar2 = 98;char charShuzu1[]="Hello world!";char charShuzu2[]="98 97 99 100";void setup() 
{Serial.begin(9600);Serial.println(charDanzifu);  // charDanzifu 就是一个字符,print 以ASCII码形式输出,IDE的串口监视器显示的时候,转化为ASCII码对应的字符显示Serial.println(intXiaozhengshu1); // 数字也是按照字符的形式输出,输出的是 9 字符  对应的ASCII码,显示的时候  显示的是ASCII码对应的字符Serial.println(intXiaozhengshu2); // 19 是 分为 字符1 和  字符 9 ,分别传输和显示的Serial.println(intDazhengshu1,HEX); // 整数形式就是正常输出,后面如果不带HEX , 就默认按照十进制输出, Serial.println(intDazhengshu2,HEX); // 这里要注意,0X22221 超过了16位,Arduino UNO 最大存储16位,超过16位,就发生了截断,可以输出结果看到少了一个2Serial.println(intChar1); //  如果用数字 16 表示char格式,程序里会默认16 是某个字符的ASCII码, //输出的时候  输出的是这个数字,显示的是这个码 对应的字符, 16 对应的字符 是乱码Serial.println(intChar2); //  98 对应的字符是 b, 所以最终输出的就是 b Serial.println(charShuzu1); // 正常输出字符串Serial.println(charShuzu2); // 数字字符串也是按照 单个 数字字符  依次输出的}/** *  *下面在loop中测试 read 和 print 对应的输出1.直接用read 不经过变量输出呢2.定义的变量是char 类型,在 read 字符和数字的情况下,分别输出的是什么3. 定义的变量是int 类型,在 read 字符和数字的情况下,分别输出的是什么4. 怎样读取一个长整数,然后正确的输出出来(都按十进制)5. 怎样读取一个长字符串,然后正确的输出出来*/void loop() // 针对每一类,单独一个模块进行,要注意delay。
{//  read and printint intReadp = 0; char charReadp;while(!Serial.available()){}while(Serial.available()){// read每次只读一个字节,且从缓存去除;这里验证一下 直接输出read到的结果,不经过变量,输入6aSerial.println("第一步:");Serial.println(Serial.read());delay(10);    }while(!Serial.available()){}while(Serial.available()){// read每次只读一个字节,且从缓存去除;这里验证一下 int 类型变量 在int 和char 类型分别读取输出的结果,输入6aintReadp = Serial.read();Serial.println("第二步:");Serial.print(" The intReadp is : ");Serial.println(intReadp);delay(10);    }while(!Serial.available()){}while(Serial.available()){// 这里验证一下 char 类型变量 在int 和char 类型分别读取输出的结果,输入6acharReadp = Serial.read();Serial.println("第三步:");Serial.print(" The charReadp is : ");Serial.println(charReadp);delay(10);    }/*如何来读取一长串数呢,比如输入1234 ,读取这个数,再输出1234* 需要用一个字符数组来分别接收各个数字字符 ,注意,要想得到和原输入字符一样的字符,需要用char 格式来存储 read到的数据*/String chuanString ="";char inChar;while(!Serial.available()){}while(Serial.available()){// 输入1234inChar = Serial.read();    chuanString += inChar;delay(10);    }Serial.println("第四步:");Serial.print(" The chuanString is : ");Serial.println(chuanString);int intChuanshu = chuanString.toInt(); //前面的chuanString 是字符串格式,我们要想将得到的数字,当整数使用,需要转化下,用toInt,转化之后,就成了整数了Serial.println("第四步  之二 :");Serial.print(" The intChuanshu is : ");Serial.println(intChuanshu);intChuanshu = intChuanshu+7;Serial.println("第四步  之三 :");Serial.print(" The intChuanshu 加 is : ");Serial.println(intChuanshu);String chuanString2 ="";char inChar2;while(!Serial.available()){}while(Serial.available()){// 输入abcdefginChar2 = Serial.read();     chuanString2 += inChar2;delay(10);  }Serial.println("第五步:");Serial.print(" The chuanString2 is : ");Serial.println(chuanString2);delay(2000);}


分别输入: 6a   6a    6a    1234    absdf  之后  (串口显示框 右下   选  没有结束符)
运行结果如下:

 

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

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

相关文章

C#经典名著:《C#入门经典》(第4版)

博客园专题:http://book.cnblogs.com/zt/begin_csharp/ 作  者: (美)沃森(Watson,K.),(美)内格尔(Nagel,C.) 等著&#…

您必须学习Java 8的函数式编程吗?

我最近一直在研究Java 8,并掌握了Manning出版的“ Java 8 In Action” 。 让我印象深刻的第一件事是Java 8的独特销售主张是函数式编程。 函数现在是一流的变量,您可以像int或String一样在代码中传递它们。 这是一个很大的变化。 近年来,功能…

巨蟒django之权限6: 权限控制表设计登录权限

1.权限控制表设计 内容 1. 什么是权限? 2. 为什么要有权限?不同用户拥有不同的功能 3. 在web开发中,什么是权限?url 代表 权限4. 开发一个权限的组件,为什么要开发组件?5. 表结构的设计# 第一版权限表 pe…

CSS制作镂空字体

1.效果图 2.html内容&#xff1a; <!doctype html><html lang"en"><head> <meta charset"UTF-8"> <title>Document</title></head><style> body{background: rgb(248,248,248);} span{font-size: 240px;…

为什么要在Java的Serializable类中使用SerialVersionUID

序列化和SerialVersionUID始终是许多Java开发人员的难题。 我经常会看到类似此SerialVersionUID的问题&#xff0c;或者如果不在我的Serializable类中声明SerialVersionUID会发生什么情况&#xff1f; 除了涉及到的复杂性和罕见的使用之外&#xff0c;这些问题的另一个原因是Ec…

SQL2005-使用openrowset 里读取excel文件

很多时候我们都知道使用.net代码去读取word,excel文档&#xff0c;但是我们如何使用sql句语里读取excel文件呢&#xff1a;SQL2005为我们提供了OPENROWSET来访问各种数据源&#xff1a;,当然我还是建议使用.net代码来读取这些文件。这里就不多说了。 我们先看一下官方的解释&am…

Java中的SynchronousQueue示例–生产者使用者解决方案

SynchronousQueue是BlockingQueue的一种特殊类型&#xff0c;其中每个插入操作必须等待另一个线程进行相应的删除操作&#xff0c;反之亦然。 当您在SynchronousQueue上调用put&#xff08;&#xff09;方法时&#xff0c;它将阻塞&#xff0c;直到有另一个线程将该元素从Queue…

OnSen UI结合AngularJs打造”美团APP我的”页面 --Hybrid App

1、页面效果图&#xff1a; 演示地址&#xff1a;http://www.nxl123.cn/bokeyuan/meiTuanDemo_mine/ 2、核心代码 mine.html&#xff1a; <ons-page id"mine" ng-controller"MineController"> <!--toolbar开始--> <ons-toolbar>…

[MOSS开发]:通过简单BUG跟踪Demo阐述用户控件对列表的操作

下面的文章我想以一个具体的BUG跟踪Demo来说明MOSS的具体应用,这里面会应用到下面的知识点: 1:用户组,用户的创建,权限分配&#xff1b; 2:列表的概念以及创建&#xff1b; 3:利用用户控件来完成表单的增加加功能&#xff1b; 4:当前域用户查看自己BUG。 BUG跟踪软件在一些…

Maven的课堂笔记4

9.Maven与MyEclipse2014结合 MyEclipse10以上的版本,对Maven支持的就比较好 9.2 Myeclipse配置 本地文件夹的C盘的.m2文件夹下必须得有这个settings.xml文件 不配置这个settings.xml文件的话,myeclipse会从互联网上下载需要的jar包. 9.3 修改pom文件 添加jar包 <project xml…

vue动画

vue 提供了一些显示、隐藏一些不同的过渡&#xff0c;效果主要跟 v-if v-show 动态组件 1. vue 给动画分了 6 个过程&#xff0c;在 css 中扮演 6 个类 .v-enter  定义动画的开始状态 .v-enter-active  定义动画生效时的状态 .v-enter-to  定义动画结束是的状态 .v-leave…

图数据库的知识表示与推理

图形数据库及其技术生态系统可以为知识表示和推理问题提供优雅&#xff0c;有效的解决方案。 要了解这种说法&#xff0c;我们必须首先了解什么是图形。 图是一种数据结构。 图数据结构的类型很多&#xff0c;但出于本文的目的&#xff0c;我们将重点介绍一种已被称为属性图的类…

vegas 为盖斯

vegas 为盖斯 S键 分割素材U键 分开视频和音频I键渲染开始O渲染结束 默认布局 为盖斯新建项目的参数 剪好后渲染 插入字幕 转载于:https://www.cnblogs.com/GaoNa/p/10562504.html

COMET彗星(三)构建自己的COMET核心

主题列表&#xff1a; COMET彗星&#xff08;一&#xff09;SERVER PUSH介绍 COMET彗星&#xff08;二&#xff09;基于SERVER PUSH的消息传输 引言&#xff1a; 在上一篇随笔中&#xff0c;对COMET使用的类和作用进行了简短的介绍&#xff0c;从本篇随笔开始&#xff0c;将从实…

如何在JavaServer Pages中使用Salesforce REST API

摘要&#xff1a;本教程提供了一个JSP示例以及如何将其与Salesforce REST API集成。 我们将逐步完成创建外部客户端以使用Force.com &#xff08;同时使用HTTP&#xff08;S&#xff09;和JSON&#xff09;管理您的数据的分步过程。 在此示例中&#xff0c;我将Mac OS X 10.9.…

写在08年“愚人节”

从博客园学了很多东西&#xff0c;是时候该回馈了。谢谢博客园给我们提供这么好的平台交流技术。 刚发了文章习惯性的看了下自己博客的首页代码&#xff0c;感觉日历不够精良。 我做过的一个ajax日历&#xff0c;可以参考解放日报 艺术家具版的日期直达功能的日历&#xff0c;用…

JQuery实现点击按钮切换图片(附源码)--JQuery基础

JQuery实现切换图片相对比较简单&#xff0c;直接贴代码了哈&#xff0c;有注释噢&#xff01;疑问请追加评论哈&#xff0c;不足之处还请大佬们指出&#xff01; 1、案例代码&#xff1a; demo.html&#xff1a; <!DOCTYPE html><html><head>   <me…

CSS3盒子模型

web前端必须了解的CSS3盒子模型 1、需要了解的属性以及属性值 display:box或者display:inline-box box-orient:horizontal | vertical (水平 垂直) 定义盒模型的布局方向 box-direction:normal reverse(正序 反序) 元素排列顺序 box-ordinal-group:number(数值) 设置元素…

与JBoss Fuse,Jenkins和Nexus的持续集成

最近&#xff0c;我正在整理一个快速启动的Maven项目&#xff0c;以展示一种组织JBoss Fuse项目的可行方法。 该项目可在Github上找到&#xff1a; https &#xff1a; //github.com/paoloantinori/fuse_ci 这是我与朋友詹姆斯罗林斯 &#xff08; James Rawlings&#xff09…

html5表单与PHP交互

1、示例代码 前端&#xff1a; <!DOCTYPE html><html><head><meta charset"utf-8"> <title>html5表单与PHP交互</title></head><body><form action"http://localhost/jh.php" method"post"…