hongshimizi 发表于 2016-1-23 11:30:00

我今天尝试了一下软串口,总结一下

本帖最后由 hongshimizi 于 2016-1-23 11:33 编辑

由于今天我的ATiny85不知道为啥com口老是识别不了。本想用ATiny85做的东西,只能用uno先做演练。别跟我说uno本来就有TX、RX这么坏心眼的话,伦家想用的是ATiny85 哭
这是一个,在一个unoA上写了,一个发送串口7的,另一个unoB接收到7,13灯就亮的简单程序。一上午就干了点这些。。。是的,我就是这么弱。

uno A:
#include <SoftwareSerial.h>

SoftwareSerial mySerial(10, 11); // RX, TX

void setup()
{

mySerial.begin(9600);

}

void loop() // run over and over
{
   mySerial.write(7);
   delay(500);
}

uno B :
#include <SoftwareSerial.h>

SoftwareSerial mySerial(10, 11); // RX, TX

void setup()
{
   Serial.begin(9600);
   mySerial.begin(9600);
}

void loop() // run over and over
{
if (mySerial.available())
    Serial.println(mySerial.read());
    delay(500);
if(mySerial.read()==7)digitalWrite(13,HIGH);
    delay(500);
}

我就是发现了,uno A 发送串口数据的时候一定要用, mySerial.write不要用mySerial.printIn,就是这样,我再去折腾我的ATiny85去了

flying03 发表于 2016-1-23 13:12:47

是mySerial.println,不是printIn.传输数据量不大软串口是可以的。

hongshimizi 发表于 2016-1-23 13:28:16

flying03 发表于 2016-1-23 13:12 static/image/common/back.gif
是mySerial.println,不是printIn.传输数据量不大软串口是可以的。

我用mySerial.println时,串口监测工具显示出来的是37,用mySerial.write时才显出出来的是7,你知道是怎么回事吗?

flying03 发表于 2016-1-23 13:51:33

Serial.print()自带数字转文本,然后按照文本传输,而Serial.write()直接是数据本身
你println("7")试试

hongshimizi 发表于 2016-1-23 22:56:23

flying03 发表于 2016-1-23 13:51 static/image/common/back.gif
Serial.print()自带数字转文本,然后按照文本传输,而Serial.write()直接是数据本身
你println("7")试试

哦~ 是啊~ 谢谢~
页: [1]
查看完整版本: 我今天尝试了一下软串口,总结一下