UNO R3 串口通信
想问下IO扩展板V7上面的TX-RX//TXD-RXD可以作为单独的两个串口进行通信吗?背景:打算使用两个MPU6050模块通过串口通信返回采集后的数据
祝好……:)
你说的这两个,应该是同一个串口。不过你可以考虑使用软串口,这样一个硬件串口,一个软件串口,符合你需要两个串口。
软串口参考:http://arduino.cc/en/Reference/softwareSerial Youyou 发表于 2014-9-28 11:21
你说的这两个,应该是同一个串口。不过你可以考虑使用软串口,这样一个硬件串口,一个软件串口,符合你需要 ...
但是这两个软硬串口没得同时获取数据,听闻2560有4个串口,亲你了解吗? allelujah27 发表于 2014-9-28 14:00
但是这两个软硬串口没得同时获取数据,听闻2560有4个串口,亲你了解吗?
MEGA1280/2560都有4个硬件串口,符合你使用。 mickey 发表于 2014-9-28 14:49
MEGA1280/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
write()
写二进制数据到串口,数据是一个字节一个字节地发送的,若以字符形式发送数字请使用print()代替。
...
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应该是作为一单个字节发送的,而不是二进制
页:
[1]