Соединение Arduino Uno и Atmega8 по USART

Sherl
Offline
Зарегистрирован: 31.07.2013

Здравствуйте! Пытаюсь наладить передачу данных от Atmega8 на Arduino UNO по usart. Передача строго односторонняя: Atmega - передатчик, Arduino - приемник. Попытался сделать с наскока: прошивку передатчика взял отсюда: http://avr-start.ru/?p=764   приемник отсюда: http://flank1er.blogspot.ru/2012/12/c-arduino.html с изменением:

char s[5]; 
int k;
int i=0;

// инициализация 
void setup() {
  Serial.begin(9600);
}

// рабочий цикл
void loop() {
  while (Serial.available() > 0)
  {
  //Serial.println("Getting");  
  s[i]=Serial.read();
  i++;
  // ждем пока приедет следующий символ
  delay (2);
  // защищаемся от переполнения буфера
  if (i>=5) break;
  }
  
  if (i > 0) {
    //for (k=0; k<i;k++)
    //Serial.println("Begin");
    Serial.println(s[]);
       // Serial.println("End");
    i=0;
  }

}

RX, TX соединил напрямую (крест-накрест, разумеется), питание МК - от Arduino. Включил - монитор порта возвращает 128 - символ Бойля. 

Может быть есть рабочие примеры?

std
Offline
Зарегистрирован: 05.01.2012

Не нужно изобретать велик, есть EasyTransfer.

Клапауций
Offline
Зарегистрирован: 10.02.2013

Тут я народ пытал на тему правильного приёма/передачи, много странного флуда, но последние варианты кода приёмника и передатчика вполне исправно работают.

*ньюанс - у меня Ардуино-загрузчик работает не через UART, т.е. выводы RX/TX обоих МК подключены друг к другу и никуда больше.

Sherl
Offline
Зарегистрирован: 31.07.2013

Спасибо, буду раскуривать. Если еще у кого-нибудь появятся идеи/примеры, буду очень рад.