Arduino mega2560 rx1和tx1使用的问题-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 5482|回复: 1

[未解决] Arduino mega2560 rx1和tx1使用的问题

[复制链接]
发表于 2016-3-27 20:06 | 显示全部楼层 |阅读模式
  我买了一个mpu6050模块,用作角度传感器,将tx和rx分别插入rx0和tx0,可以从串口得到反馈角度,但是我该用serial1、serial2和serial3都无法使用,求问到底是为什么,谢谢!

unsigned char Re_buf[11],counter=0;
unsigned char sign=0;
float a[3],w[3],angle[3],T;
void setup() {
  // initialize serial:
  Serial2.begin(9600);
}

void loop() {
  if(sign)
  {  
     sign=0;
     if(Re_buf[0]==0x55)      //检查帧头
     {  
  switch(Re_buf [1])
  {
  case 0x53:
          angle[0] = (short(Re_buf [3]<<8| Re_buf [2]))/32768.0*180;
    angle[1] = (short(Re_buf [5]<<8| Re_buf [4]))/32768.0*180;
    angle[2] = (short(Re_buf [7]<<8| Re_buf [6]))/32768.0*180;
    T = (short(Re_buf [9]<<8| Re_buf [8]))/340.0+36.25;
                Serial2.print("a:");
                Serial2.print(a[0]);Serial2.print(" ");
                Serial2.print(a[1]);Serial2.print(" ");
                Serial2.print(a[2]);Serial2.print(" ");
                Serial2.println(T);
                break;
  }
    }
  }
}

void serialEvent2() {
  while (Serial2.available()) {

    //char inChar = (char)Serial.read(); Serial.print(inChar); //Output Original Data, use this code

    Re_buf[counter]=(unsigned char)Serial2.read();
    if(counter==0&&Re_buf[0]!=0x55) return;      //第0号数据不是帧头              
    counter++;      
    if(counter==11)             //接收到11个数据
    {   
       counter=0;               //重新赋值,准备下一帧数据的接收
       sign=1;
    }

  }
}

发表于 2021-3-20 11:18 | 显示全部楼层
mega 2560的板子上有四个串口:serial,serial1,serial2,serial3
四个端口都能中后三个都能连接外部硬件接受数据进行处理,但是只有serial串口(第零个串口)能讲数据输出到PC的串口监视器中
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-11-29 10:40 , Processed in 0.101016 second(s), 15 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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