Соединение Arduino Uno и Atmega8 по USART
- Войдите на сайт для отправки комментариев
Ср, 31/07/2013 - 19:21
Здравствуйте! Пытаюсь наладить передачу данных от 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 - символ Бойля.
Может быть есть рабочие примеры?
Не нужно изобретать велик, есть EasyTransfer.
Тут я народ пытал на тему правильного приёма/передачи, много странного флуда, но последние варианты кода приёмника и передатчика вполне исправно работают.
*ньюанс - у меня Ардуино-загрузчик работает не через UART, т.е. выводы RX/TX обоих МК подключены друг к другу и никуда больше.
Спасибо, буду раскуривать. Если еще у кого-нибудь появятся идеи/примеры, буду очень рад.