前言

本节,我将带领大家熟悉WeMos D1串口开发,并利用两个串口实现数据收发以及打印调试。

一、基础知识

1 串口简介

串口是WeMos D1开发板与其它设备进行穿行通信的接口,所谓串行通信其实是指数据一位一位顺序传送给目标设备。

wemos D1 arduino物联网开发板应用笔记2-串口通讯_第1张图片

数据按位发送,默认是8位数据位,1位停止位,无校验方式传输。

wemos D1 arduino物联网开发板应用笔记2-串口通讯_第2张图片

串口传输数据方式有三种:单工传送(一方发送,另一方接收)、半双工(两方均可发送,但不能同时发送)、全双工(两方可以同时发送,wemos D1默认使用这种方式)

二、函数说明

函数说明如下表所示:

wemos D1 arduino物联网开发板应用笔记2-串口通讯_第3张图片

三、实例程序

实例程序实现串口0接收到数据后,通过串口0和串口1打印出来。

char byte_recv = 0;
String data_recv = "";
int flag_recv_str = 0;

void setup() {
  // put your setup code here, to run once:
  pinMode(BUILTIN_LED, OUTPUT); 
  digitalWrite(BUILTIN_LED, LOW);
  Serial1.begin(9600);
  Serial.begin(9600);
}

void loop() {
  // put your main code here, to run repeatedly:

  while (Serial.available() > 0) {
     byte_recv = Serial.read();
     Serial1.print("recv_byte:");
     Serial1.println(byte_recv, HEX);
     Serial.print("recv_byte:");
     Serial.println(byte_recv, DEC);

     flag_recv_str = 1;
    data_recv += byte_recv;
    delay(10);
   }

   if (1 == flag_recv_str){
      flag_recv_str = 0;
      Serial.print("recv_str:");    
      Serial.println(data_recv);
      Serial1.print("recv_str:");    
      Serial1.println(data_recv);
      data_recv = "";
   }
}

四、运行

1 实物连接

2 运行结果

wemos D1 arduino物联网开发板应用笔记2-串口通讯_第4张图片

串口0接到电脑是COM6端口,串口1通过串口小板连接到电脑是COM8端口。

五、结语

1.总结:

本节完,实际操作过程中需要注意的地方有如下几点:

(1) 串口1只有TX

串口1只有TX,没有RX,可以作为打印调试信息的串口使用,另一组串口可以控制外设。

2.后记:

如您在使用过程中有任何问题,请加QQ群进一步交流,也可以github提Issue。

QQ交流群:906015840 (备注:物联网项目交流)

github仓库地址:https://github.com/solitary-sand/wemos/

一叶孤沙出品:一沙一世界,一叶一菩提

wemos D1 arduino物联网开发板应用笔记2-串口通讯_第5张图片