当前位置:网站首页>Arduino Serial系列函数 有关print read 的总结
Arduino Serial系列函数 有关print read 的总结
2022-07-03 07:16:00 【yuchu3d】
总结一下 在学习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位,就发生了截断,可以输出结果看到少了一个2
Serial.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 print
int intReadp = 0;
char charReadp;
while(!Serial.available()){}
while(Serial.available())
{
// read每次只读一个字节,且从缓存去除;这里验证一下 直接输出read到的结果,不经过变量,输入6a
Serial.println("第一步:");
Serial.println(Serial.read());
delay(10);
}
while(!Serial.available()){}
while(Serial.available())
{
// read每次只读一个字节,且从缓存去除;这里验证一下 int 类型变量 在int 和char 类型分别读取输出的结果,输入6a
intReadp = Serial.read();
Serial.println("第二步:");
Serial.print(" The intReadp is : ");
Serial.println(intReadp);
delay(10);
}
while(!Serial.available()){}
while(Serial.available())
{
// 这里验证一下 char 类型变量 在int 和char 类型分别读取输出的结果,输入6a
charReadp = 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())
{
// 输入1234
inChar = 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())
{
// 输入abcdefg
inChar2 = Serial.read();
chuanString2 += inChar2;
delay(10);
}
Serial.println("第五步:");
Serial.print(" The chuanString2 is : ");
Serial.println(chuanString2);
delay(2000);
}
分别输入: 6a 6a 6a 1234 absdf 之后 (串口显示框 右下 选 没有结束符)
运行结果如下:

边栏推荐
- Advanced API (UDP connection & map set & collection set)
- Laravel frame step pit (I)
- Strategy mode
- Advanced API (character stream & net for beginners)
- docker建立mysql:5.7版本指定路径挂载不上。
- PAT甲级真题1166
- 4everland: the Web3 Developer Center on IPFs has deployed more than 30000 dapps!
- php安装swoole扩展
- Inno Setup 制作安装包
- C代码生产YUV420 planar格式文件
猜你喜欢

EasyExcel

深度学习参数初始化(一)Xavier初始化 含代码

Basic knowledge about SQL database

Mise en place d'un environnement de développement de fonctions personnalisées

On the practice of performance optimization and stability guarantee

JMeter test result output

Pat grade a real problem 1166

Selenium key knowledge explanation

Jmeter+influxdb+grafana of performance tools to create visual real-time monitoring of pressure measurement -- problem record

File operation serialization recursive copy
随机推荐
Le Seigneur des anneaux: l'anneau du pouvoir
Selenium key knowledge explanation
On the practice of performance optimization and stability guarantee
Summary of abnormal mechanism of interview
gstreamer ffmpeg avdec解码数据流向分析
High concurrency memory pool
Practice of enterprise ab/testing platform
2021 year end summary
php artisan
Gridome + strapi + vercel + PM2 deployment case of [static site (3)]
JMeter test result output
dataworks自定义函数开发环境搭建
Troubleshooting of high CPU load but low CPU usage
Common analysis with criteria method
How can I split a string at the first occurrence of “-” (minus sign) into two $vars with PHP?
MySQL syntax (basic)
New stills of Lord of the rings: the ring of strength: the caster of the ring of strength appears
dataworks自定義函數開發環境搭建
In depth analysis of reentrantlock fair lock and unfair lock source code implementation
【已解决】win10找不到本地组策略编辑器解决方法