I’m new to this kind of things so I need help from you guys. When playing around with serial ports, I figured why not echo from one terminal and cat/listen from the other using one of the /dev/ttyS* serial ports on my ubuntu 15.04 laptop. When i do cat /dev/ttyS0 it gives me input output error. then i tried doing it using pyserial on python. when i do
import serial
ser = serial.Serial('/dev/ttyS0')
it gives me SerialException: Could not configure port: (5, 'Input/output error')
After looking around on stack overflow, I found this related post Pyserial: could not configure port: (5, ‘Input/output error)
where one of the guy said you need a physical connection to make this happen. I’m guessing that is to create some kind of loop. So my question is what kind of physical connection is required? Who a usb stick do it, or do i need something dedicated to work with the serial port. And if someone would provide good explanation on how serial port programming works, that would be great.
Feel free to edit the question where you see fit. Guys please no need to complain about how dumb this question sounds and all that. After all lots of people come here to learn, and that is what i am doing
0
1
root@debian:/dev# dmesg |grep ttyS
[ 0.575165] serial8250: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
[ 0.575464] 00:0e: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
root@debian:~# ls -l /dev/ttyS*
crw-rw—- 1 root dialout 4, 64 Сен 17 13:32 /dev/ttyS0
root@debian:/dev# cat /dev/ttyS0
cat: /dev/ttyS0: Ошибка ввода/вывода
В чем проблема
- Ссылка
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
I am unable to write to or read from /dev/ttyS0
# cat /dev/ttyS0
cat: /dev/ttyS0: Input/output error
the device exists, and root has permissions.
# ls -lAhF /dev/ttyS0
crw------- 1 root root 4, 64 Nov 18 12:09 /dev/ttyS0
# setserial -g /dev/ttyS0
/dev/ttyS0, UART: 16550A, Port: 0x03f8, IRQ: 4
# dmesg | egrep -i 'serial|ttys'
[ 1.243271] Serial: 8250/16550 driver, 1 ports, IRQ sharing disabled
[ 2703.151301] ttyS0: LSR safety check engaged!
# cat /proc/devices | grep tty
4 tty
4 ttyS
5 /dev/tty
I have serial enabled in my kernel:
# grep SERIAL config
CONFIG_SERIAL_8250=y
CONFIG_SERIAL_8250_NR_UARTS=1
CONFIG_SERIAL_8250_RUNTIME_UARTS=1
CONFIG_SERIAL_CORE=y
What do I have to do to make serial work ?
Физически вам нужен кабель, который меняет контакты передачи и приема. Это известно как «нуль-модемный кабель», потому что он может соединить два компьютера без модема между ними.
Возможно, вам также необходимо добавить себя в группу «dialout», чтобы использовать последовательные порты.
putty — действительно хорошая программа для тестирования с последовательными портами — у вас может быть два экземпляра putty, взаимодействующих друг с другом, и затем попытайтесь соединить putty с одной стороны с Python с другой.
Наконец, иногда есть модем, который запускается и думает, что он должен владеть всеми последовательными портами. Обычно он сдается и позволяет им идти через некоторое время, но, возможно, вам придется его найти и убить, если вы не хотите, чтобы случайные процессы опрашивали модемы в вашем последовательном соединении.
Модератор: Bizdelnick
-
Hooliganos
- Сообщения: 278
- ОС: debian 6.0.4
com — порт
COM-порт отказался работать. Сам порт (железо) исправен.
Попытка получить данные с порта оканчиваются неудачей: communication port not avaliable.
И от пользователя, и от рута.
Что можно с этим придумать?
-
Rootlexx
- Бывший модератор
- Сообщения: 4443
- Статус: GNU generation
- ОС: Debian GNU/Linux
Re: com — порт
Сообщение
Rootlexx » 30.06.2009 19:00
Hooliganos писал(а): ↑
30.06.2009 18:02
Попытка получить данные с порта оканчиваются неудачей: communication port not avaliable.
Чем вы пытаетесь получить эти данные?
-
Hooliganos
- Сообщения: 278
- ОС: debian 6.0.4
Re: com — порт
Сообщение
Hooliganos » 02.07.2009 15:04
как /dev/ttyS0 он отображается, но толку от этого никакого: кроме прав доступа, ничего не посмотришь
А в центре управления ничего нет, может хоть какую-то инфу дало бы
-
Hooliganos
- Сообщения: 278
- ОС: debian 6.0.4
Re: com — порт
Сообщение
Hooliganos » 02.07.2009 15:53
deadhead писал(а): ↑
02.07.2009 15:15
ну может у вас данные на /dev/ttyS1 идут? проверяли?
порт натроить не забыли?
Код: Выделить всё
[root@localhost ~]# setserial /dev/ttyS0 -a
/dev/ttyS0, Line 0, UART: 16550A, Port: 0x03f8, IRQ: 4
Baud_base: 115200, close_delay: 50, divisor: 0
closing_wait: 3000
Flags: spd_normal skip_test
может что с программатором не так?
Устанавливал из дистриба.
-
deadhead
- Сообщения: 1913
- Статус: zzz..z
Re: com — порт
Сообщение
deadhead » 02.07.2009 15:58
Hooliganos писал(а): ↑
02.07.2009 15:53
может что с программатором не так?
ради эксперимента можете попробовать подавать данные на порт и ловить их
что бы выйте нажимайте Ctrl+C
[x] close
-
Hooliganos
- Сообщения: 278
- ОС: debian 6.0.4
Re: com — порт
Сообщение
Hooliganos » 02.07.2009 16:06
cat на ttyS0 и ttyS1 зависает надолго, ничего не выводя, на ttyS3, ttyS4 пишет ошибка ввода/вывода
Должно что-то выводится в теминал?
-
deadhead
- Сообщения: 1913
- Статус: zzz..z
Re: com — порт
Сообщение
deadhead » 02.07.2009 16:14
Hooliganos писал(а): ↑
02.07.2009 16:06
Должно что-то выводится в теминал?
Если вы что-то подаете на com-порт то да, как минимум крагозябры, а если источник и приемник настроены «синхронно» и передаются симолы, то вы, вроде как, должны их и принимать.
upd. да кстати, кобель тот что надо? нуль модемный, кажется, нужен…
[x] close
-
Hooliganos
- Сообщения: 278
- ОС: debian 6.0.4
Re: com — порт
Сообщение
Hooliganos » 02.07.2009 16:27
там кабеля нет. Прямо на ответной части разъема спаяна простенькая схема программатора микросхем типа 24С04 и т.п.
Программатор работал ещё несколько дней назад. В Винде и сейчас работает, так что к кабелю и схеме претензий нет.
Может пони чего-то не того. Попробую переставить.
