极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 14018|回复: 4

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

[复制链接]
发表于 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去了
回复

使用道具 举报

发表于 2016-1-23 13:12:47 | 显示全部楼层
是mySerial.println,不是printIn.传输数据量不大软串口是可以的。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-1-23 13:28:16 | 显示全部楼层
flying03 发表于 2016-1-23 13:12
是mySerial.println,不是printIn.传输数据量不大软串口是可以的。

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

使用道具 举报

发表于 2016-1-23 13:51:33 | 显示全部楼层
Serial.print()自带数字转文本,然后按照文本传输,而Serial.write()直接是数据本身
你println("7")试试
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-1-23 22:56:23 | 显示全部楼层
flying03 发表于 2016-1-23 13:51
Serial.print()自带数字转文本,然后按照文本传输,而Serial.write()直接是数据本身
你println("7")试试

哦~ 是啊~ 谢谢~
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|联系我们|极客工坊

GMT+8, 2026-6-16 18:59 , Processed in 0.033633 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表