Получаем в ответ ошибку: Failed to flush serial port: The request is not supported. Что это может быть?
С помощью программы https://freevirtualserialports.com/ смогли открыть 2 виртуальных порта на windows.
Проверили с помощью терминалов(https://micro-pi.ru/terminal-1-9b-работаем-com-портом/) соединение, все работает.
Взяли за основу код с сайта: https://www.pololu.com/docs/0J73/15.6, указали в коде один из новосозданных ком портов.
Получаем в ответ ошибку: Failed to flush serial port: The request is not supported. Что это может быть?
А именно в самом низу пример кода, то он выдает следующую ошибку: terminate called after throwing an instance of 'TTYException'
Если ориентироваться на код с этого сайта: https://ru.wikibooks.org/wiki/COM-порт_в_Windows_(программирование)
А именно в самом низу пример кода, то он выдает следующую ошибку: terminate called after throwing an instance of 'TTYException'
А именно в самом низу пример кода, то он выдает следующую ошибку: terminate called after throwing an instance of 'TTYException'
Слишком мало информации, чтобы я сказал в чём проблема. Может у вас не тот ком порт указан. Не понятно, в какой момент вылетает TTYException.
И вообще этот пример один из многих. Можно посмотреть иные реализации работы с COM портом.
> Если ориентироваться на код с этого сайта: https://ru.wikibooks.org/wiki/COM-порт_в_Windows_(программирование)
>
> А именно в самом низу пример кода, то он выдает следующую ошибку: terminate called after throwing an instance of 'TTYException'
>
Слишком мало информации, чтобы я сказал в чём проблема. Может у вас не тот ком порт указан. Не понятно, в какой момент вылетает `TTYException`.
И вообще этот пример один из многих. Можно посмотреть иные реализации работы с COM портом.
А как построить логику работы с uart? В том плане, мы же через него отправляли байты, а теперь отправляем через com порт, нужен ли он или какая логика?
А как построить логику работы с uart? В том плане, мы же через него отправляли байты, а теперь отправляем через com порт, нужен ли он или какая логика?
Сделал как понимаю на ком портах, без уарта
https://git.vyatsu.ru/ICS-Microprocessor-2020/Display_Avr_3/commit/11b937437781008674552572ab2731405da1a0c3
Ещё возник вопрос, а как мы будем открывать com-порты на атмеге, это же нормально можно сделать только на каком либо компьютере. Не понимаю логику. Или нужно сделать отдельную программу, или же наоборот запускаем все с ноутбука? Желательно как можно точный ответ дать на это все, чтобы уже закончить с кодом курсового проекта
Ещё возник вопрос, а как мы будем открывать com-порты на атмеге, это же нормально можно сделать только на каком либо компьютере. Не понимаю логику. Или нужно сделать отдельную программу, или же наоборот запускаем все с ноутбука? Желательно как можно точный ответ дать на это все, чтобы уже закончить с кодом курсового проекта
https://git.vyatsu.ru/ICS-Microprocessor-2020/Display_Avr_3/commit/11b937437781008674552572ab2731405da1a0c3#diff-61dc8f359adeef7fca8a9b8943be203afe1e2008
папку Debug нельзя коммитить, т.к. на получается в результате сборки. Вы засоряете репозиторий.
Читаем дружно про [.gitignore](https://docs.github.com/ru/get-started/getting-started-with-git/ignoring-files)
У вас COM-порт на атмеге и есть UART. Код был написан. Внутри кода для микроконтроллера у вас есть доступ ко ВСЕМ регистрам устройства.
При разработке прикладного ПО для любой ОС вы имеете API, не имеете прямой доступ к регистрам COM-порта (это всё тот же UART). Вот так с регистрами работают внутри ядра Linux https://elixir.bootlin.com/linux/latest/source/drivers/tty/serial/8250
Хорошо, как нам эмулировать подачу байтов в uart на устройство? Пока есть мысли о том, чтобы написать отдельное приложение на другом языке, которое будет эмулировать второе устройство на прием и отправку.
Хорошо, как нам эмулировать подачу байтов в uart на устройство? Пока есть мысли о том, чтобы написать отдельное приложение на другом языке, которое будет эмулировать второе устройство на прием и отправку.
Вот у вас есть указанная вами программа, это вся эмуляция.
Вы пишите программу, которая использует вашу же реализацию HDLC, а UART'ом выступает COM-порт. Запустите эту программу на Windows два раза: один для первого порта, другую для другого. Потом, когда у вас будет устройство-ардуино, вы запустите программу только один раз: вы укажите COM-порт ардуины.
> С помощью программы https://freevirtualserialports.com/ смогли открыть 2 виртуальных порта на windows.
Вот у вас есть указанная вами программа, это вся эмуляция.
Вы пишите программу, которая использует вашу же реализацию HDLC, а UART'ом выступает COM-порт. Запустите эту программу на Windows два раза: один для первого порта, другую для другого. Потом, когда у вас будет устройство-ардуино, вы запустите программу только один раз: вы укажите COM-порт ардуины.
2ad07a39c5 в этом коммите вы тоже выгрузили бинарные компилируемые файлы (мусор)
https://git.vyatsu.ru/ICS-Microprocessor-2020/Display_Avr_3/commit/2ad07a39c5b52693c7d6572f447e17d76787e562 в этом коммите вы тоже выгрузили бинарные компилируемые файлы (мусор)
То есть, мы должны запустить наш код на ардуино, подключенную к ноутбуку, понять какой это com-порт, и через программу freevirtualserialports создать remote порт, подключиться к нему через код, как в
https://git.vyatsu.ru/ICS-Microprocessor-2020/Display_Avr_3/src/branch/dev/hdlc_screen/main_com.c
только с одним портом? А для проверки создать 2 порта, как в main и сделано
На встрече вы мне продемонстрируете работу своего кода для Атмеги: у вас будет прошитое устройство, котрое будет подключено к PC, на котором будет запущена модифицированная ваша программа.
Дома, пока у вас нет ардуины, вы можете потестить работу своей программы на эмуляторе COM-портов.
Как я сейчас вижу, ваша программа для AVR есть в коммите 2ad07a39c5 , а для Windows вы разрабатываете программу в 11b9374377
На встрече вы мне продемонстрируете работу своего кода для Атмеги: у вас будет прошитое устройство, котрое будет подключено к PC, на котором будет запущена модифицированная ваша программа.

Дома, пока у вас нет ардуины, вы можете потестить работу своей программы на эмуляторе COM-портов.

Как я сейчас вижу, ваша программа для AVR есть в коммите https://git.vyatsu.ru/ICS-Microprocessor-2020/Display_Avr_3/commit/2ad07a39c5b52693c7d6572f447e17d76787e562 , а для Windows вы разрабатываете программу в https://git.vyatsu.ru/ICS-Microprocessor-2020/Display_Avr_3/commit/11b937437781008674552572ab2731405da1a0c3
выходит ошибка -1073741819 (0xC0000005) и программа завершается, как это решить? Уже не первый раз сталкиваюсь с этой ошибкой при разработке протокола
Все поправил и сделал, но есть одна проблема. При попытке вывода строки на экран в строчке https://git.vyatsu.ru/ICS-Microprocessor-2020/Display_Avr_3/src/commit/d223f7839211dd069fed68e9cdd56550551fde90/hdlc_screen/main_com.c#L167 выходит ошибка -1073741819 (0xC0000005) и программа завершается, как это решить? Уже не первый раз сталкиваюсь с этой ошибкой при разработке протокола
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
С помощью программы https://freevirtualserialports.com/ смогли открыть 2 виртуальных порта на windows.
Проверили с помощью терминалов(https://micro-pi.ru/terminal-1-9b-работаем-com-портом/) соединение, все работает.
Взяли за основу код с сайта: https://www.pololu.com/docs/0J73/15.6, указали в коде один из новосозданных ком портов.
Получаем в ответ ошибку: Failed to flush serial port: The request is not supported. Что это может быть?
Ссылка на исходник?
Немного не понял, про какой исходник вы имете в виду. Программа подключения была взята полностью с сайта, единственное был поменян ком порт, и все.
Если ориентироваться на код с этого сайта: https://ru.wikibooks.org/wiki/COM-порт_в_Windows_(программирование)
А именно в самом низу пример кода, то он выдает следующую ошибку: terminate called after throwing an instance of 'TTYException'
Слишком мало информации, чтобы я сказал в чём проблема. Может у вас не тот ком порт указан. Не понятно, в какой момент вылетает
TTYException.И вообще этот пример один из многих. Можно посмотреть иные реализации работы с COM портом.
А как построить логику работы с uart? В том плане, мы же через него отправляли байты, а теперь отправляем через com порт, нужен ли он или какая логика?
Сделал как понимаю на ком портах, без уарта
11b9374377Ещё возник вопрос, а как мы будем открывать com-порты на атмеге, это же нормально можно сделать только на каком либо компьютере. Не понимаю логику. Или нужно сделать отдельную программу, или же наоборот запускаем все с ноутбука? Желательно как можно точный ответ дать на это все, чтобы уже закончить с кодом курсового проекта
11b9374377 (diff-61dc8f359adeef7fca8a9b8943be203afe1e2008)папку Debug нельзя коммитить, т.к. на получается в результате сборки. Вы засоряете репозиторий.
Читаем дружно про .gitignore
У вас COM-порт на атмеге и есть UART. Код был написан. Внутри кода для микроконтроллера у вас есть доступ ко ВСЕМ регистрам устройства.
При разработке прикладного ПО для любой ОС вы имеете API, не имеете прямой доступ к регистрам COM-порта (это всё тот же UART). Вот так с регистрами работают внутри ядра Linux https://elixir.bootlin.com/linux/latest/source/drivers/tty/serial/8250
Хорошо, как нам эмулировать подачу байтов в uart на устройство? Пока есть мысли о том, чтобы написать отдельное приложение на другом языке, которое будет эмулировать второе устройство на прием и отправку.
Вот у вас есть указанная вами программа, это вся эмуляция.
Вы пишите программу, которая использует вашу же реализацию HDLC, а UART'ом выступает COM-порт. Запустите эту программу на Windows два раза: один для первого порта, другую для другого. Потом, когда у вас будет устройство-ардуино, вы запустите программу только один раз: вы укажите COM-порт ардуины.
2ad07a39c5в этом коммите вы тоже выгрузили бинарные компилируемые файлы (мусор)То есть, мы должны запустить наш код на ардуино, подключенную к ноутбуку, понять какой это com-порт, и через программу freevirtualserialports создать remote порт, подключиться к нему через код, как в
https://git.vyatsu.ru/ICS-Microprocessor-2020/Display_Avr_3/src/branch/dev/hdlc_screen/main_com.c
только с одним портом? А для проверки создать 2 порта, как в main и сделано
На встрече вы мне продемонстрируете работу своего кода для Атмеги: у вас будет прошитое устройство, котрое будет подключено к PC, на котором будет запущена модифицированная ваша программа.
Дома, пока у вас нет ардуины, вы можете потестить работу своей программы на эмуляторе COM-портов.
Как я сейчас вижу, ваша программа для AVR есть в коммите
2ad07a39c5, а для Windows вы разрабатываете программу в11b9374377Все поправил и сделал, но есть одна проблема. При попытке вывода строки на экран в строчке