Due не читает COM порт

Нет ответов
New_Subscriber
Offline
Зарегистрирован: 16.10.2015

Добрый день!

Стокнулся со следующей проблемой: есть плата Adruino Due. Надо прочитать данные с COM порта.

Задача тривиальная, но плата почему-то не видит входного потока данных.

Меняю ее на Мегу - все работает. Заливаю тот же скетч и все работает

Для проверки набросал скетч, который пишет данные в файл и параллельно выводит на монитор (см. ниже):

#include <Wire.h>
#include <SD.h>
#include <stdio.h>
#include <SPI.h>
const int chipSelect = 4; // On the Ethernet Shield, CS is pin 4

int incomingByte = 0;   // переменная для хранения байта данных, 
                        //принятых по последовательному интерфейсу
File dataFile;

void setup() {
 
  Serial.begin(9600);     // открываем последовательный порт
  Serial3.begin(9600);    // задаем скорость передачи данных 9600 бод
  Serial2.begin(9600);
  Serial1.begin(9600);
  Serial.print("Initializing SD card..."); // ВЫВОД ИНФОРМАЦИИ ОБ ИНИЦИАЛИЗАЦИИ КАРТЫ ПАМЯТИ
  // make sure that the default chip select pin is set to
  // output, even if you don't use it:

  pinMode(10, OUTPUT);
  
  // see if the card is present and can be initialized:
  if (!SD.begin(chipSelect)) 
  {
   Serial.println("Card failed, or not present"); // ВЫВОД ИНФОРМАЦИИ ОБ ИНИЦИАЛИЗАЦИИ КАРТЫ ПАМЯТИ
    // don't do anything more:
    return;
  }
  Serial.println("card initialized."); // ВЫВОД ИНФОРМАЦИИ ОБ ИНИЦИАЛИЗАЦИИ КАРТЫ ПАМЯТИ
*/  
}
 
void loop() {

// отправляем данные только после их получения:
if (Serial3.available() > 0) 
{
dataFile = SD.open("COM_3.DAT", FILE_WRITE);
incomingByte = Serial3.read();
dataFile.write(incomingByte);
Serial.print(incomingByte);
}
if (Serial2.available() > 0) 
{
dataFile = SD.open("COM_2.DAT", FILE_WRITE);
incomingByte = Serial2.read();
dataFile.write(incomingByte);
Serial.print(incomingByte);
}
if (Serial1.available() > 0) 
{
dataFile = SD.open("COM_1.DAT", FILE_WRITE);
incomingByte = Serial1.read();
dataFile.write(incomingByte);
Serial.print(incomingByte);
}
if (Serial.available() > 0) 
{
dataFile = SD.open("COM_0.DAT", FILE_WRITE);
incomingByte = Serial.read();
dataFile.write(incomingByte);
Serial.print(incomingByte);
}
dataFile.close();
}
 

Проблема в коде или железо глючит?