MrBoriska
@MrBoriska
Пэхэпист самоучка, Питоност по Лутцу. C++

Не принимаются данные из последовательного порта на стороне Arduino Mega2560. Что предпринять?

Ситуация такая. У меня есть Arduino, где-то месяца два она лежала на полке, и вроде как не получала никаких повреждений. Недавно она мне опять понадобилась. Но как оказалось, не работает считывание с последовательного порта. Программа в ардуину шлется, и сама она на компьютер по последовательному порту данные исправно отправляет, компьютер их исправно принимает. Но в обратную сторону связь не работает. При отправке чего-то с компьютера на плату, на плате исправно загорается RX. Но вот в самой программе данные, почему-то, недоступны.

Например такая программа:

void setup() {
    Serial.begin(9600);
}
void loop() {
    Serial.write(Serial.read());
}


При отправке на arduino через последовательный порт данных(как через монитор порта в IDE, так и с помощью собственных простеньких программ на Python или С++) Arduino не возвращает ничего.

Если сделать, например, такую программу:

void setup() {
    Serial.begin(9600);
}
void loop() {
    Serial.println("I am sending");
}


То ардуина будет исправно отправлять на компьютер "I am sending"

Ранее (2 месяца назад) данные исправно отправлялись и принимались.

Догадка 1:
Может быть дело в том, что ранее я пользовался драйвером, создающим виртуальный Serial порт из Arduino IDE версии 1.0.5 , а сейчас перешел на Arduino IDE 1.6.4(причем устанавливал прямо на версию 1.0.5) Информации, где говорилось бы о том, что Mega2560 что то не поддерживает в новой IDE я не нашел.
Примечание:
После установки IDE 1.6.4 я не смог установить версию ниже, или переустановить 1.6.4, ибо выдавалась ошибка NSIS_Error, решил написать, хотя ошибка в принципе не связана с темой, тут нужно мусор чистить...
Догадка 2:
Windows 7, который я сейчас использую, уже довольно давно не переустанавливал, и гдето месяц назад произошло проишествие, в результате которого я полностью перенастраивал систему(реестр, автозагрузка, службы). Сейчас стоит два антивируса DrWEB и SpyHunter, один мониторит все подряд, другой использую раз в неделю для сканирования на вирусы. Думаю что либо я что-то не включил(службу например) или настроил неправильно, или это антивирус блокирует передачу по Serial порту. Но ведь загрузка программы то работает(и в момент загрузки работает как TX так и RX (светодиод))
Догадка 3:
По неизвестным причинам плата пришла в негодность.
Догадка 4:
Кроме того, на плате горит и никогда не гаснет(если самому не погасить) светодиод L, он горит желтым цветом, и мигает только при рестарте. Где-то слышал, что он горит в момент открытия последовательного соединения. Это что получается, последовательное соединение виснет при загрузке? Но ведь отправка то работает.

Помогите пожалуста) уж очень не хочется покупать еще одну плату из-за этого.(если дело в ней). Догадки тоже приветствуются.
  • Вопрос задан
  • 7654 просмотра
Решения вопроса 2
MrBoriska
@MrBoriska Автор вопроса
Пэхэпист самоучка, Питоност по Лутцу. C++
Выявил проблемы с настройкой портов на Windows. Эх, вот так всегда...
Ответ написан
Комментировать
Что бы исключить догадки о проблемах на ПК можно ардуину и кабель её притащить к другу и протестировать у него, ну или на других машинах, если есть.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
gbg
@gbg Куратор тега Arduino
Любые ответы на любые вопросы
Запишите прошивку, которая выставляет пины меги на чтение и вешает контроллер.
Замкните пины TX0 и RX0.
Подключите плату к последовательному порту.
Все, что вы будете писать в порт, будет возвращаться обратно.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы