Проблемы с кабелем RS232 и коммуникацией

Позвольте мне начать путем высказывания, что я надеюсь, что это - правильное место для выяснения.

Моя проблема еще просто не определяется, и я надеюсь, что можно помочь мне пролить некоторый свет на то, что идет не так, как надо.

Так, соглашение состоит в том, которые для моего экзамена электроники предполагают, что моя группа и я сделали ECG главным образом для контроля сердечного ритма. Мы затем хотели бы взять данные, мы получаем и отправляем их на компьютер и оттуда тянем график фактического ECG. Плата электроники и которые работают отлично. Мы берем нашу частоту сердечного ритма и помещаем ее через и AD преобразователь (записанный в Ассемблере). После этого мы берем выходной сигнал через оптрон и оттуда к нашему кабелю RS232 и в компьютер.

Я полагаю, что правильно установил драйверы VCP от FTDI. Когда я говорю, что полагаю, что это - потому что я следовал инструкциям по установке, и все подходили однако, когда я пробую пример, я получаю ошибку:

casper@casper-ThinkPad-L530:~/Downloads/release/examples$ make -B
for n in BitMode EEPROM/erase EEPROM/read EEPROM/write EEPROM/user/read EEPROM/user/size EEPROM/user/write Events LargeRead MultiThread SetVIDPID Simple Timeouts ; do make -C $n || exit 1; done
make[1]: Entering directory `/home/casper/Downloads/release/examples/BitMode'
gcc main.c -o bitmode -Wall -Wextra -L. -lftd2xx -Wl,-rpath /usr/local/lib  
/usr/local/lib/libftd2xx.a(ftd2xx.o): In function `InitCheckDevice':
ftd2xx.c:(.text+0x315): undefined reference to `dlopen'
ftd2xx.c:(.text+0x33b): undefined reference to `dlopen'
ftd2xx.c:(.text+0x378): undefined reference to `dlsym'
ftd2xx.c:(.text+0x383): undefined reference to `dlerror'
/usr/local/lib/libftd2xx.a(ftd2xx.o): In function `my_init':
ftd2xx.c:(.text+0x44c): undefined reference to `dlclose'
ftd2xx.c:(.text+0x488): undefined reference to `pthread_create'
/usr/local/lib/libftd2xx.a(ftd2xx.o): In function `my_fini':
ftd2xx.c:(.text+0x4cd): undefined reference to `pthread_join'
/usr/local/lib/libftd2xx.a(ftd2xx.o): In function `DeviceMatch':
ftd2xx.c:(.text+0x537): undefined reference to `dlclose'
/usr/local/lib/libftd2xx.a(ftd2xx.o): In function `FTCommonOpen':
ftd2xx.c:(.text+0x229c): undefined reference to `pthread_create'
ftd2xx.c:(.text+0x22dd): undefined reference to `pthread_create'
ftd2xx.c:(.text+0x232b): undefined reference to `pthread_create'
/usr/local/lib/libftd2xx.a(ftd2xx.o): In function `FT_Close':
ftd2xx.c:(.text+0x2630): undefined reference to `pthread_join'
ftd2xx.c:(.text+0x2670): undefined reference to `pthread_join'
ftd2xx.c:(.text+0x26dd): undefined reference to `pthread_join'
/usr/local/lib/libftd2xx.a(io.o): In function `libusb_try_lock_events':
io.c:(.text+0x8d5): undefined reference to `pthread_mutex_trylock'
/usr/local/lib/libftd2xx.a(linux_usbfs.o): In function `find_monotonic_clock':
linux_usbfs.c:(.text+0x180): undefined reference to `clock_gettime'
/usr/local/lib/libftd2xx.a(linux_usbfs.o): In function `op_clock_gettime':
linux_usbfs.c:(.text+0x323b): undefined reference to `clock_gettime'
linux_usbfs.c:(.text+0x3250): undefined reference to `clock_gettime'
collect2: ld returned 1 exit status
make[1]: *** [bitmode] Error 1
make[1]: Leaving directory `/home/casper/Downloads/release/examples/BitMode'
make: *** [subdirs] Error 1

Это - мой первый выпуск, я не уверен, как полностью проверить, работает ли драйвер на самом деле. Я вижу кабель отлично при выполнении:

casper@casper-ThinkPad-L530:~/Downloads/release/examples$ ls -h /dev/*tty*

Я могу найти:

/dev/ttyUSB0

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

Который приводит к моей второй проблеме. Это - вероятно, только проблема из-за вышеупомянутого, но тем не менее:

Я только начинаю использовать PySerial для работы с кабелем, но я, может казаться, не получаю схватывание того, как сделать это. При выполнении следующего:

import serial

ser = serial.Serial('/dev/ttyUSB0', timeout=10)

x = ser.read()

print x

ser.close()

Shell просто зависает, как будто никакие байты не получены, после 10 вторых тайм-аутов он закрывается. Я знаю для того, что я отправляю сигнал через кабель, поскольку я могу видеть результат на осциллографе.

При необходимости еще в информации или изображениях чего-нибудь, спросите, я с удовольствием предоставлю Вам тем, в чем Вы нуждаетесь.

С нетерпением ждем ответа от Вас, Наилучших пожеланий!

Править:

При рытье через большее количество документации PySerial я попробовал следующее:

import serial
import io

ser = serial.Serial('/dev/ttyUSB0', timeout=1)
ser.baudrate = 19200

print ser

ser.close()

И получите результат:

Serial<id=0x98dad6c, open=True>(port='/dev/ttyUSB0', baudrate=19200, bytesize=8, parity='N', stopbits=1, timeout=1, xonxoff=False, rtscts=False, dsrdtr=False)

Я также попробовал:

casper@casper-ThinkPad-L530:~$ python -m serial.tools.list_ports regexp

И доберитесь:

Filtered list with regexp: 'regexp'
no ports found

Надежда это помогает чему-нибудь?

1
задан 25 April 2014 в 20:56

0 ответов

Другие вопросы по тегам:

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