'Serial1'没有命名类型-arduino中的错误

时间:2019-03-21 15:51:00

标签: arduino

我正在尝试验证ADS1198和Arduino Due中的Arduino代码。即使我在开头定义了两个串行端口(现在我给出了注释),也会出现错误显示“ Serial1”未命名类型。如何处理此错误“ Serial1”未命名类型”。我如何在ArduinoDue上定义这两个端口,以便成功地编译。

#include <ads1298.h>
#include <Base64.h>

// Minimal sketch for connection to ADS129n family. Load this script and open Tools/SerialMonitor. 
// You should see text like this
// Device Type (ID Control Register): 62 Channels: 8
// If you see "Channels: 0" then check your wiring

#include "ads1298.h"
#include "adsCMD.h"
#include <Base64.h>


#include <SPI.h>  // include the SPI library:
int gMaxChan = 0; //maximum number of channels supported by ads129n = 4,6,8
int gIDval = 0;   //Device ID : lower 5 bits of ID Control Register

int activeSerialPort = 0; //data will be sent to serial port that last sent commands. E.G. bluetooth or USB port
const int kPIN_LED = 13;  //pin with in-built light - typically 13, 11 for Teensy 2.0.

//ADSCMD

#include "Arduino.h"

//For Leonardo SPI see http://openenergymonitor.blogspot.com/2012/06/arduino-leonardo-atmega32u4-and-rfm12b.html
//constants define pins on Arduino 

// Arduino Due
const int IPIN_PWDN = 47;   //not required for TI demo kit
const int PIN_CLKSEL = 49;  //6;//*optional
const int IPIN_RESET  = 48; //*optional

const int PIN_START = 46;
const int IPIN_DRDY = 45;
const int IPIN_CS = 52;
const int PIN_DOUT = 11;    //SPI out
const int PIN_DIN = 12;     //SPI in
const int PIN_SCLK = 13;    //SPI clock
//

//function prototypes
void adc_wreg(int reg, int val); //write register
void adc_send_command(int cmd);  //send command
int adc_rreg(int reg);           //read register

//start Serial Peripheral Interface
int numActiveChannels = 0;
boolean gActiveChan[9]; // reports whether channels 1..9 are active
boolean isRdatac = false;
boolean base64Mode = false;
int sampleCount=0;
boolean isLimit=false;

char hexDigits[] = "0123456789ABCDEF";
uint8_t serialBytes[200];
char sampleBuffer[1000];
uint8_t chan1[2];

const char *hardwareType = "unknown";
const char *boardName = "HackEEG";
const char *makerName = "Hamid, Mujahid, Abdul Hameed";
const char *driverVersion = "ADS1298 driver v0.1";

#if defined(__SAM3X8E__)
//#define isDUE //Detect Arduino Due
//#define WiredSerial SerialUSB //Use Due's Native port
//#define NSerial SerialUSB
#endif

void setup(){
  using namespace ADS1298;
  //prepare pins to be outputs or inputs
  pinMode(PIN_SCLK, OUTPUT); //optional - SPI library will do this for us
  pinMode(PIN_DIN, OUTPUT);  //optional - SPI library will do this for us
  pinMode(PIN_DOUT, INPUT);  //optional - SPI library will do this for us
  pinMode(IPIN_CS, OUTPUT);
  pinMode(PIN_START, OUTPUT);
  pinMode(IPIN_DRDY, INPUT);
  pinMode(PIN_CLKSEL, OUTPUT); // *optional
  pinMode(IPIN_RESET, OUTPUT); // *optional
  pinMode(IPIN_PWDN, OUTPUT);  // *optional
  digitalWrite(PIN_CLKSEL, HIGH); // External clock
  //start Serial Peripheral Interface


  SPI.begin();
  SPI.setBitOrder(MSBFIRST);
#ifndef isDUE
  SPI.setClockDivider(SPI_CLOCK_DIV4); //forum.pjrc.com/.../1156-Teensy-3-SPI-Basic-Clock-Questions
#endif
  SPI.setDataMode(SPI_MODE1);
  //Start ADS1298
  delay(500); //wait for the ads129n to be ready - it can take a while to charge caps
  digitalWrite(PIN_CLKSEL, HIGH); // External clock
  delay(10); // wait for oscillator to wake up 
  delay(1);
  digitalWrite(IPIN_PWDN, HIGH); // *optional - turn off power down mode
  digitalWrite(IPIN_RESET, HIGH);
  delay(1000);// *optional
  digitalWrite(IPIN_RESET, LOW);
  delay(1);// *optional
  digitalWrite(IPIN_RESET, HIGH);
  delay(1500); // *optional Wait for 18 tCLKs AKA 9 microseconds, we use 1 millisecond

  adc_send_command(SDATAC); // Send SDATAC Command (Stop Read Data Continuously mode)
  // delayMicroseconds(2);
  delay(100); 
  // Determine model number and number of channels available
  gIDval = adc_rreg(ID); //lower 5 bits of register 0 reveal chip type
  switch (gIDval & B00011111 ) { //least significant bits reports channels
    case B10000: //16
      hardwareType = "ADS1294";
      gMaxChan = 4; //ads1294
      break;
    case B10001: //17
      hardwareType = "ADS1296";
      gMaxChan = 6; //ads1296
      break; 
    case B10010: //18
      hardwareType = "ADS1298";
      gMaxChan = 8; //ads1298
      break;
    case B11110: //30
      hardwareType = "ADS1299";
      gMaxChan = 8; //ads1299
      break;
    case B10110: //22
      hardwareType = "ADS1198";
      gMaxChan = 8; //ads1198
      break;
    default: 
      gMaxChan = 0;
  }
}

void detectActiveChannels() { //set device into RDATAC (continous) mode -it will stream data//
  if ((isRdatac) || (gMaxChan < 1)) return; //we can not read registers when in RDATAC mode
  //Serial.println("Detect active channels: ");
  using namespace ADS1298; 
  numActiveChannels = 0;
  for (int i = 1; i <= gMaxChan; i++) {
    delayMicroseconds(1); 
    int chSet = adc_rreg(CHnSET + i);
    gActiveChan[i] = ((chSet & 7) != SHORTED);
    if ( (chSet & 7) != SHORTED) numActiveChannels ++; 
  }
}

//start serial port
Serial1.begin(115200);
Serial.begin(115200); //use native port on Due

1 个答案:

答案 0 :(得分:0)

Serial1.begin(115200)Serial.begin(115200)需要放在一个函数中。将它们放在setup()中。