Доброго дня.
Столкнулся с такой проблемой. Есть плата MH-Tiny на AtTiny88, код простейший:
04 | #include <SoftwareSerial.h> |
05 | SoftwareSerial SoftSerial(RX, TX); |
08 | SoftSerial.begin(9600); |
12 | if (SoftSerial.available()) { |
13 | char sym = SoftSerial.read(); |
14 | SoftSerial.write(sym); |
Контроллер передает данные в порт нормально, а вот при чтение из порта сыпятся ошибки. Скорость любая, от 300 до 19200 корежит всю строку со второго символа, при скорости выше, первые 5-6 символов нормальные, дальше опять мусор появляется.
Пины менял, USB-TTL менял, контролер менял (все 3 одинаково себя ведут), на 7 ноге 16,03 МГц.
Куда дальше копать?
SoftwareSerial не может работать в дуплексном режиме, т.е. и принимать и отправлять одновременно. Только по очереди.
Хм, да, этот момент я провтыкал.
Тогда вопрос, как сделать отладку на аттини если SoftwareSerial в это время гоняет данные с другим мк?
Обьясните, в чем вообще смысл читать данные и отправлять обратно в тот же порт? Вы что сделать пытаетесь?
Тогда вопрос, как сделать отладку на аттини если SoftwareSerial в это время гоняет данные с другим мк?
И как этот факт мешает отладке?
Тот кусок кода был просто для проверки Serial.
Основная проблема в том, что ESP-01 отправляет запрос к аттини и ждет ответа. А его нет. Вот я и пытаюсь выяснить почему.
И как этот факт мешает отладке?
Очевидно же. В порту один мусор
Основная проблема в том, что ESP-01 отправляет запрос к аттини и ждет ответа. А его нет. Вот я и пытаюсь выяснить почему.
Шлите ответ после того, как приняли весь запрос, а не задерживайте чтение записью.
Хм, да, этот момент я провтыкал.
Тогда вопрос, как сделать отладку на аттини если SoftwareSerial в это время гоняет данные с другим мк?
Отладчиком. Или логическим анализатором, хотя бы.
Да, наверное придется так и делать.