COM-порт
- Войдите на сайт для отправки комментариев
Пт, 31/01/2014 - 16:31
COM-порт
Установил MAX3232, а проверить связку Arduino + Персоональный Компьютер не смог.
Несколько раз переделал схему.
Установил на ПК две программы: PORTMON и Test_MAX232
В Arduino код:
void setup() { Serial.begin(9600); } void loop() { if (Serial.available()) Serial.write(Serial.read()); }
PORTMON -мониторит COM-порт
Test_MAX232 -Open COM1(открыть порт)->Write port(отправить в Arduino)->Read port(читать из Arduino)->Close port(закрыть порт)
Вопрос: как сделать полноценную проверку COM-порта?
-скорость и т.д.
проверьте max232 вообще работает или нет.
замкните rx и tx у вашей платы и в ардуино в терминале отправляйте что нибудь и должно тоже самое приходить.
когда точно будете знать что работает тогда уже и ардуину можно цеплять
Простую проверку связи ПК + Arduino я сделал с помощью Test_MAX232.
Всё отправляет и всё читает.
Надо установить на ПК серьёзную программу и проверить насколько надёжна связь.
мне лично эта понравилась. сам пользовался когда беспроводной uart тестировал
http://yadi.sk/d/irKYLKYjH5Mvb
внизу показывает релаьную скорость и количество ошибок. тестировать можно на разной скорости
Спасибо.
Скетч который я выложил в первом посту, это просто "перемычка" Tx<->Rx
Может кто напишет скетч более правильный.
Чтобы было видно, как общаются ПК и процессор ATmega.
сначала в железе замкните и прогоните на разной скорости а потом уже ваш скетч
115200 нормально работает. Test_MAX232_115200
Вот этот скетч обратно шлёт кразябяки.
Его можно поправить.
надо скорость постепенно увеличивать. 115200 может прост оне потянуть ваш переходник на плате
и зря текст отправляете лишний
Всем привет. Можно здесь вопрос задать?
Кто знает как работает встроенный в редактор монитор порта. Дело в том что он работает правильно и читает порт без ошибок. В отличии от того что я написал. Встроенный монитор принимает сообщение полностью и с любой скоростью. Моя же реализация может прочитать половину сообщения, а при следующем обращении дочитать остаток. Такое не часто но все же случается. Это происходит когда порт считывается в тот момент когда идет передача и считывается он быстрее чем передает контроллер. Вот и подумал может кто разбирается в англоязычном сайте и может вытащить код по работе монитора. Как там это реализованно? Нигде нормальной инфы по порту не могу найти.
вот программа для отправки обратно числа больше чем 9
если отправлять от 0 до 9 то пойдет и ваша программа
Я так смотрю тут гуру все по ком порту. Насколько мне удалось понять логику работы порта. Эта программа работает правильно. А кракозябры это не что иное как символы конца строки и возврата каретки, ака \n и \r. Которые ты сам отправляешь используя println(), используй print() и кракрзябр не будет.
я настолько не интересовался работой com порта. но есть разработчик который писал программы для общения устройств по uart. что конкретно у него спросить?
Здравствуйте.
Помогите пожалуйста с кодом. Я имею команды которыми можно управлять счётчик они в HEX формате но я незнаю как их отправить через Arduino на счётчик отправляю одно а на PuTTy вижу другое
что отправляете понятно. а что получаете??
мне нужно отправить команду 0E 49 AE 07 1A AF BC
а в мониторинге порта вижу 37 99 E8 AB 02 1E не понимаю почему
отправляете 7 байт а получаете 6?
Простите я ошибся давайте обьясну по подробнее у меня есть протокол обмена с счётчиком.
Например с помошью программы DockLight v2 я отправляю команду 00 E4 9A E0 71 AA FB 0C и счётчик отвечает на него и отключает внутреннее реле.
А тепер я хочу отправить этуже команду с Arduino Mega но у меня чтото не получается помогите пожалуйста буду очень благодарен
В 12-ой строчке поставте Serial.write(Code1, 8);
Добрый вечер. В программировании я не так давно, по этому разрешите обратиться к Вам. Не получается простая задача - не могу вывести массив данных на COM порт. Точнее выводит, но не значения массива, а какие-то квадратики.
Заранее СПАСИБО!!!
Ну а ты как хотел? Что в массиве, строки, числа??? И как ты их считываешь? Ардуин 8ми битный, а комп 32х битный! Они символы поразному читают. Тебе самому побайтово считывать нужно.
Хотел ссылку дать, но не дам. Не помню где прочитал. Там было написанно что в ардуино на символ идет 1 байт, а в 32х разрядных системах 4 байта.
Ну а если передавать кирилицу то квадратики будут.
инт занимает 4 байта, а не один. Это тоже учитывать нужно. И так каждый тип дпнных имеет свой размер. Поэтому его нужно читать соответственно.
Если передать инт, а принять как чар. то это будет четыре квадратика, а не один инт.
Вот и все что я хотел сказать.
Ясно. Главное никому не давайте рецепта этой каши.
Дайте свой рецепт, вместо того чтобы умничать.
Зачем вы проверяете уровень моих знаний, вы знаете больше? Помогите человеку!
Seth, большая просьба - не давать совет в том в чём не разбираешься
В чтении файлов? СОМ порт именно как файл читается, я разбираюсь. И писал их и читал потом и все прекрасно работало.
flashman попробуйте организовать вывод, например, в шестнадцатиричном виде, а потом посмотри коды в ascii таблице. (может быть ждешь цифровой вывод, а выводится символы типа int 0 и char "0")
seth, вам сколько лет? может быть еще пиписьками померимся?
Ему уже помогли в другой ветке.
Дело тут больше не в знании - знать все невозможно, а в понимании. А вот зачем советовать, то чего сами не понимаете это уже вопрос к вам. Или считаете что вводить людей в заблуждение это правильно?
Вот вы ляпнули не пойми чего, а ведь кто то ваши слова за истину воспримет... А если уж начали что то советовать в чем сами до конца не разобрались, то копайте до конца и сами для себя выясняйте что же вы насоветовали и так ли это есть на самом деле. А просто вывалить кашу - это не есть помощь.
Здравствуйте. Использую AtMega32А в качестве ардуино. Программа стандартная:
С передачей через ком порт та же чепуха - кракозябры. Все проверял - скорость, четность, биты.... и все ничего... пробовал ком порты на CH340 и на FTDI - без разницы... сами порты работают нормально. Перечитал и испробовал здесь предложенные варианты все какие возможно... и ничего... Может кто то сталкивался с подобным контроллером и такой ошибкой?
Подскажите как сделать чтоб функция выполнялась лишь при соединении телефона с блютузом и наоборот. Спасибо. Нс-5 модуль.
А подробнее, какая функция?