ESP8266串口的使用

ESP8266上有两组串口,Serial(UART0)和Serial1(UART1)。UART1只能用于写数据,不能用于接收数据,因为它的RX引脚被用于flash芯片连接

串口UART0

Serial使用UART0,默认对应引脚是GPIO1(TX)和GPIO3(RX)。

在Serial.begin执行之后,调用Serial.swap()可以将Serial重新映射到GPIO15(TX)和GPIO13(RX)。再次调用Serial.swap()将Serial重新映射回GPIO1和GPIO3。


void setup() { // 这里开始写初始化代码,只会执行一次 
  Serial.begin(115200); 
  Serial.println("GPIO1(TX),GPIO3(RX)"); //调用映射方法 
  Serial.swap(); 
  Serial.println("GPIO15(TX),GPIO13(RX)"); //重新映射回来 
  Serial.swap(); 
  Serial.println("GPIO1(TX),GPIO3(RX)");
}

void loop() { //这里写运行代码,重复执行}

对于需要使用两个串口的项目来说,可以使用Serial引脚的映射切换,来实现两个串口的通讯。

串口UART1

Serial1使用UART1,默认对应引脚是GPIO2(TX)

void setup() { 
  // 这里开始写初始化代码,只会执行一次 
  SerialConfig config = SerialConfig::SERIAL_8N1;
  SerialMode mode = SerialMode::SERIAL_TX_ONLY;
    // put your setup code here, to run once:
  Serial1.begin(9600,config,mode);
  Serial1.println("Hello Serial1");
}
void loop() { 
  //这里写运行代码,重复执行
}

串口引脚的使用

ESP8266 串口引脚映射关系
引脚UART0UART1
1TXD(默认)
2TXD(Serial.set_tx(2))TXD(默认,且当UART0未使用时可用)
3RXD(默认)
13RXD(swap后)
15TXD(swap后)

UART0可以使用的引脚组合由(1,3)(2,3)(15,13)

UART1只能有写入功能,只能使用2引脚,且在UART0未使用(2,3)组合时可用

如果串口不够用怎么办?

方法一、切换引脚

  //初始化时指定写入引脚
  Serial.begin(9600,config,mode,2);
  //使用swap切换
  Serial.swap(2);
  //使用set_tx切换
  Serial.set_tx(2);
  //使用pins切换
  Serial.pins(15,13);

方法二、使用软件模拟串口

#include <SoftwareSerial.h>
//自定义串口
SoftwareSerial MySerial;

int incomingByte = 0;

void setup() { 
  // 这里开始写初始化代码,只会执行一次 
  Config conf = Config::SWSERIAL_8N1;
  //设置引脚5为rxd  2为txd
  MySerial.begin(9600,conf,5,2);

}
void loop() { 
  //这里写运行代码,重复执行
 
  if(MySerial.available()>0){
    incomingByte = MySerial.read();
    MySerial.print("U1接收数据: 0x");
    MySerial.println(incomingByte, HEX);
  }
}

需要安装 SoftwareSerial 的函数库 EspSoftwareSerial

  • 2
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值