当前位置:网站首页>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 之后 (串口显示框 右下 选 没有结束符)
运行结果如下:

边栏推荐
- 万卷书 - 价值投资者指南 [The Education of a Value Investor]
- Software testing learning - day 3
- 【已解决】win10找不到本地组策略编辑器解决方法
- gstreamer ffmpeg avdec解码数据流向分析
- [vscode - vehicle plug-in reports an error] cannot find module 'xxx' or its corresponding type declarations Vetur(2307)
- CentOS switches and installs mysql5.7 and mysql8.0
- Chrome 98 Private Network Access problem w/ disabled web security: Request had no target IP address
- 4everland: the Web3 Developer Center on IPFs has deployed more than 30000 dapps!
- 在 4EVERLAND 上存储 WordPress 媒体内容,完成去中心化存储
- Advanced API (serialization & deserialization)
猜你喜欢

Basic components and intermediate components

Pits encountered in the use of El checkbox group

在 4EVERLAND 上存储 WordPress 媒体内容,完成去中心化存储

4279. Cartesian tree

Final, override, polymorphism, abstraction, interface
![[Fiddler actual operation] how to use Fiddler to capture packets on Apple Mobile Phones](/img/d0/850e095a43610366d6144b2471f3f7.jpg)
[Fiddler actual operation] how to use Fiddler to capture packets on Apple Mobile Phones

PAT甲级真题1166

Liang Ning: 30 lectures on brain map notes for growth thinking

Software testing learning - day 3

JUC forkjoinpool branch merge framework - work theft
随机推荐
SecureCRT取消Session记录的密码
Final, override, polymorphism, abstraction, interface
mongodb
【已解决】SQLException: Invalid value for getInt() - ‘田鹏‘
Recursion, Fibonacci sequence
On the practice of performance optimization and stability guarantee
【最详细】最新最全Redis面试大全(50道)
JUC forkjoinpool branch merge framework - work theft
4279. 笛卡尔树
Troubleshooting of high CPU load but low CPU usage
3311. Longest arithmetic
Raspberry pie update tool chain
EasyExcel
centos php7.3安装redis扩展
Mise en place d'un environnement de développement de fonctions personnalisées
Resttemplate configuration use
7.2 brush two questions
New stills of Lord of the rings: the ring of strength: the caster of the ring of strength appears
[HCAI] learning summary OSI model
[Fiddler actual operation] how to use Fiddler to capture packets on Apple Mobile Phones