Плата MangoPi/T113-s3. /buildroot. Пытаюсь работать с библиотекой libserialport, версия 1.0.1. Получаю список доступных портов средствами самой библиотеки. Среди них имется "/dev/ttyS5". Получаю указатель на него и пытаюсь открыть, указатель ненулевой, но операция sp_open(port) возвращает -2.
фрагмент кода
sp_get_port_by_name_f и sp_open_f - мои уазатели на соответствующие функции при загрузке из динамической библиотеки.
Установил переменную окружения LIBSERIALPORT_DEBUG=1, запустил программу, получаю:
Да, Вы совершенно правы, разумеется.. Видимо я сначала должен был спросить разобраться как грамотно использовать динамическую библиотеку. Сейчас я в ран-тайм программно открываю библиотеку, считываю из нее указатель на функцию, и затем этот указатель использую в качестве самой функции. Подход очень громоздкий, и видимо, существет альтернативный метод, динамическая линковка, с которым я незнаком пока что. Но мой метод худо бедно оправдал себя при работе с библиотекой libgpiod, Там у меня все получилось как нужно, и я продолжил в том же духе. Этот метод я почерпнул ЗДЕСЬ
Что касается версии библиотеки, то ее мне выдала сама библиотека, посредством ее функции gpiod_version_string(). (у меня, соответственно, указатель на нее gpiod_version_string_f())
И как я только что разглядел, я допустил ошибку в выводе результата этой функции на печать. Приношу свои извинения.
Уважаемый sasamy, крайне признателен Вам за помощь в правильной работе с динамическими библиотеками. Однако изначальная проблема была(и все еще имеет место) все таки в чем то другом. Запустил пример по Вашей ссылке и получил по-сути тот же самый результат..
Такой же результат получаю при попытке открыть порты ttyUSB0 или ttyUSB1 - (конвертер FT2232), их наличие в сиситеме тоже показывает фунукция sp_list_ports(struct sp_port **ports) этой же самой библиотеки..
Еще одна странность... Использовал эту библиотеку для работы с BLE модулем, не получалось получить ответ на АТ команды модуля, хотя при работе от терминала с USB/Com на РС все ОК. Сличил осциллограммы от USB/Com на РС и от последовательного порта платыю Обнаружил что при заданном BaudRate 230400, фактическая скорость прередачи с платы составляет примерно 0.93 от скорости с USB/Com ...
P.S. Ответа не требуется, освежил в памяти как задается BaudRate у процессора T113, вижу, что максимальное значение baudrate из стандартного ряда, с приемлемой точностью можно выбрать только 115200 .. При частоте кварца 24 МГц.
Можно ли решить эту проблему(получить BR > 115200) используя, например, кварцевый резонатор частотой 22.118.400, не получив в качестве побочного эффекта каких либо критических последствий ?