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.) 等著&#…

inheritPrototypal.js

// 原型式继承// 其基本思路是借助原型可以基于已有的对象创建新的对象function object(o){function F(){}F.prototype o;return new F();}var person {name: "Tom",friends: ["Jack", "John", "Kim"]};var David object(person);…

vue 用户输入搜索 与无限下拉

vue项目中,用户输入关键字搜索,并且手机端做无限下拉 watch: {getListForm.searchKey(val) { this.radioChange(); // 还有其他逻辑,内部调用getDeviceList}} 1 getDeviceList() {2 apiGetDeviceList(Qs.stringify(this.getListForm)).then(res > {3 …

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

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

鞋扔布什游戏

布什同学立功了!!在经济如此不景气的情况下,布什给全世界人民增加了一点笑料,多么伟大的奉献精神。 前几天就看到一个Flash游戏,不过那个是扮演保镖,用枪打掉扔向布什的鞋子,很不爽,…

Arduino 软串口通信 的几点体会

1、arduino主板上的 RX TX 引脚 有时不一定够用,这时就需要将别的 引脚 通过软件 模拟成串口通信引脚,但不是每个引脚 都能这么转换,不同的板子,有所不同。 2、arduino Uno 上只有一个 RX TX 引脚,分别是 0和1 引脚…

coffee.js

()( () )( ( () ) )########################################################################### ##################### ################### ##################################### 更多专业前端知识,请上 【…

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

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

AJAX Tookits -- ConfirmButton

在AJAX Toolkits中有个ConfirmButton的扩展控件,该控件只能应用与Button类型的控件,例如Button和LinkButton。 当你点击按键之后,系统会弹出一个确认框。基本属性如下: TargetControlID - Button或Link的控件编号.ConfirmText - 弹…

JavaMail可能是邪恶的(并迫使您重新启动应用程序服务器)

在配置JavaMail时,总是有一种有趣的方法。 基本上,您必须填写无类型的地图或属性结构,并希望获得正确的解释。 网络上无数的教程显示了使其正常工作(发送/接收邮件)所需的最小属性。 但是,正如我们痛苦地了…

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;…

经济危机拒绝穷潇洒 试水充电战危机

寒假充电计划寒假春节元宵&#xff1f;寒假休息睡觉&#xff1f;寒假吃饭唱歌&#xff1f;寒假看电视看书&#xff1f;寒假朋友聚会外出旅游&#xff1f;……过了这么多个寒假&#xff0c;今年这个寒假&#xff0c;似乎注定要跟往年有些不一样。因为&#xff0c;今年这个冬天冷…

常用网站

编码转换&#xff1a; http://tool.oschina.net/encode?type2&#xff08; 支持&#xff1a; Native/UnicodeNative/UTF-8Native/ASCIIURL转码&#xff09;JSON在线解析及格式化验证 https://www.json.cn/ JSON 转 Java 实体类 http://www.bejson.com/json2javapojo/new/ RGB颜…

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

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

关于注入(css/c.js)

这几天朋友的网站天天被搞破坏的人恶意注入&#xff0c;也许是程序没写好的原因&#xff0c;数据库每个字段加了一段script&#xff08;<Script Srchttp://%63%2Enuclear3.com/css/c.js></Script>&#xff0c;而这个script地址时不时的有变化&#xff09;。 用一些…

js判断浏览器是否支持flash的方法

传统浏览器可以使用window.ActiveXObject检查浏览器是否启用相关的控件。检查浏览器是否启用flash控件&#xff0c;需要先检查浏览器是否支持ActiveXObject&#xff0c;可以使用typeof检查window.ActiveXObject是否等于undefined&#xff0c;语法&#xff1a; typeof window.Ac…

bzoj5328: [Sdoi2018]物理实验

果然我还是太菜了&#xff0c;爆了一天才过。。。。隔壁肉丝都不知道喊了多少句哎╮(╯▽╰)╭我又A了什么傻逼题(然鹅就是wf和国集的题QWQ) 其实这个题就是个裸题&#xff0c;但是我就是不会。。。 这个题第一步就是明显的旋转坐标系(不会的百度)&#xff0c;注意要先平移坐标…

什么是Windows RT

Windows RT(WinRT) 是 Windows 8 家族的一个新成员&#xff0c;而这也是此前 Windows on ARM(WOA) 的官方名称。Windows RT 专注于 ARM 平台&#xff0c;并不会单独零售&#xff0c;仅采用预装的方式发行。Windows RT 中将包含针对触摸操作进行优化的微软 Word、Excel、PowerPo…

Spring MVC和Thymeleaf:如何从模板访问数据

在典型的Spring MVC应用程序中&#xff0c; Controller类负责使用数据准备模型映射并选择要呈现的视图。 该model map允许视图技术的完整抽象&#xff0c;对于Thymeleaf而言&#xff0c;它被转换为Thymeleaf VariablesMap对象&#xff0c;该对象使所有定义的变量可用于模板中执…

JQ css3 导航栏到底部上移

导航栏 .navigation {position: fixed;bottom: 100px;right: 100px;z-index: 100; } .navigation {transition: bottom 2s;-webkit-transition: bottom 2s; } JQ代码 var nav eval($(.navigation).offset().top - $(window).scrollTop()); $(window).on(scroll, function() {v…