8291| 7
|
[已解决] UNO R3 串口通信 |
Youyou 发表于 2014-9-28 11:21 但是这两个软硬串口没得同时获取数据,听闻2560有4个串口,亲你了解吗? |
顺便插一句,Serial.write()和print()作用有什么区别啊?我新手,概念有点儿混 |
write() 写二进制数据到串口,数据是一个字节一个字节地发送的,若以字符形式发送数字请使用print()代替。 语法: Serial.write(val) Serial.write(str) Serial.write(buf, len) Arduino Mega也支持:Serial1, Serial2, Serial3(在Serial的位置) 参数: val: 作为单个字节发送的数据 str: 由一系列字节组成的字符串 buf: 同一系列字节组成的数组 len: 要发送的数组的长度 返回: byte write()会返回发送的字节数,所以读取该返回值是可选的。 示例: void setup(){ Serial.begin(9600); } void loop(){ Serial.write(45); //以二进制形式发送数字45 int bytesSent = Serial.write(“hello”); //发送字符串“hello” 并返回该字符串的长度。 } print() 往串口发数据,无换行 描述 以人类可读的ASCII码形式向串口发送数据,该函数有多种格式。整数的每一数位将以ASCII码形式发送。浮点数同样以ASCII码形式发送,默认保留小数点后两位。字节型数据将以单个字符形式发送。字符和字符串会以其相应的形式发送。例如: Serial.print(78) 发送 "78" Serial.print(1.23456) 发送 "1.23" Serial.print('N') 发送 "N" Serial.print("Hello world.") 发送 "Hello world." |
Eric 发表于 2014-10-3 17:44 Example void setup(){ Serial.begin(9600); } 谢谢Eric的解释,不过 void loop(){ Serial.write(45); // send a byte with the value 45 int bytesSent = Serial.write(“hello”); //send the string “hello” and return the length of the string. } 根据Arduino的Reference中的例子 45应该是作为一单个字节发送的,而不是二进制 |
© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed