Find the answer to your Linux question:
Results 1 to 5 of 5
I have a problem with a serialport RS-232. I am trying to read data from serial port but it seems to be corrupted. OS is Debian linux. I have tested ...
Enjoy an ad free experience by logging in. Not a member yet? Register.
  1. #1
    hcz
    hcz is offline
    Just Joined!
    Join Date
    Jul 2006
    Posts
    5

    Serialport configuration


    I have a problem with a serialport RS-232. I am trying to read data from serial port but it seems to be corrupted. OS is Debian linux. I have tested to read it also with a laptop with Windows and then the data is not corrupted.

    Device that is connected to the serial port is configured to communicate with 9600 bps, 8 data bits, none parity, 1 stop bit, none flow control. Message is in UTF-8 format.

    I have tried to listen serial port with cat:

    machi:/dev# ls -la /dev/ttyS*
    crw-rw---- 1 root dialout 4, 64 2006-07-11 11:29 /dev/ttyS0
    crw-rw---- 1 root dialout 4, 65 2005-02-26 08:39 /dev/ttyS1
    crw-rw---- 1 root dialout 4, 66 2005-02-26 08:39 /dev/ttyS2
    crw-rw---- 1 root dialout 4, 67 2005-02-26 08:39 /dev/ttyS3
    crw-rw---- 1 root dialout 4, 68 2005-02-26 08:39 /dev/ttyS4
    machi:/dev# cat /dev/ttyS0
    <M2MYML verOl
    M=}tdrgs{="tMME""se|OM&&ͽrv "Ҫ~:
    ~jɷa5q MrMXMM1vev"M><﫫;WZMɥ

    Stty settings should be fine and I have tried to change some of them. Here are my stty settings:

    machi:/dev# stty -F /dev/ttyS0 -a
    speed 9600 baud; rows 0; columns 0; line = 0;
    intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>; eol2 = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R;
    werase = ^W; lnext = ^V; flush = ^O; min = 1; time = 0;
    -parenb -parodd cs8 hupcl -cstopb cread clocal -crtscts
    -ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl ixon -ixoff -iuclc -ixany -imaxbel
    opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0
    isig icanon iexten echo echoe echok -echonl -noflsh -xcase -tostop -echoprt echoctl echoke

    machi:/dev# stty -a
    speed 9600 baud; rows 63; columns 142; line = 0;
    intr = ^C; quit = ^\; erase = ^H; kill = ^U; eof = ^D; eol = <undef>; eol2 = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R;
    werase = ^W; lnext = ^V; flush = ^O; min = 1; time = 0;
    -parenb -parodd cs8 -hupcl -cstopb cread -clocal -crtscts
    -ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl -ixon -ixoff -iuclc -ixany -imaxbel
    opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0
    isig icanon iexten echo echoe echok -echonl -noflsh -xcase -tostop -echoprt echoctl echoke

    I can not see why this is not working right, any advices?

  2. #2
    Linux Enthusiast KenJackson's Avatar
    Join Date
    Jun 2006
    Location
    Maryland, USA
    Posts
    510
    Instead of cat'ing it, you could try minicom.

  3. #3
    hcz
    hcz is offline
    Just Joined!
    Join Date
    Jul 2006
    Posts
    5

    iutf8

    I have tried minicom and few other programs but the problem still exists. I got a hint that it might be UTF8 that causes it. Stty did not support iutf8 option so I upgraded it to the newest version. For some reason stty still does not recognoze the option. Version is correct and help page shows it. Any hints??

    Code:
    machi:~# stty --version
    stty (GNU coreutils) 5.97
    Copyright (C) 2006 Free Software Foundation, Inc.
    This is free software.  You may redistribute copies of it under the terms of
    the GNU General Public License <http://www.gnu.org/licenses/gpl.html>.
    There is NO WARRANTY, to the extent permitted by law.
    
    Written by David MacKenzie.
    machi:~# stty --help
    Usage: stty [-F DEVICE] [--file=DEVICE] [SETTING]...
      or:  stty [-F DEVICE] [--file=DEVICE] [-a|--all]
      or:  stty [-F DEVICE] [--file=DEVICE] [-g|--save]
    Print or change terminal characteristics.
    
      -a, --all          print all current settings in human-readable form
      -g, --save         print all current settings in a stty-readable form
      -F, --file=DEVICE  open and use the specified DEVICE instead of stdin
          --help     display this help and exit
          --version  output version information and exit
    
    Optional - before SETTING indicates negation.  An * marks non-POSIX
    settings.  The underlying system defines which settings are available.
    
    Special characters:
     * dsusp CHAR    CHAR will send a terminal stop signal once input flushed
       eof CHAR      CHAR will send an end of file (terminate the input)
       eol CHAR      CHAR will end the line
     * eol2 CHAR     alternate CHAR for ending the line
       erase CHAR    CHAR will erase the last character typed
       intr CHAR     CHAR will send an interrupt signal
       kill CHAR     CHAR will erase the current line
     * lnext CHAR    CHAR will enter the next character quoted
       quit CHAR     CHAR will send a quit signal
     * rprnt CHAR    CHAR will redraw the current line
       start CHAR    CHAR will restart the output after stopping it
       stop CHAR     CHAR will stop the output
       susp CHAR     CHAR will send a terminal stop signal
     * swtch CHAR    CHAR will switch to a different shell layer
     * werase CHAR   CHAR will erase the last word typed
    
    Special settings:
      N             set the input and output speeds to N bauds
     * cols N        tell the kernel that the terminal has N columns
     * columns N     same as cols N
       ispeed N      set the input speed to N
     * line N        use line discipline N
       min N         with -icanon, set N characters minimum for a completed read
       ospeed N      set the output speed to N
     * rows N        tell the kernel that the terminal has N rows
     * size          print the number of rows and columns according to the kernel
       speed         print the terminal speed
       time N        with -icanon, set read timeout of N tenths of a second
    
    Control settings:
       [-]clocal     disable modem control signals
       [-]cread      allow input to be received
     * [-]crtscts    enable RTS/CTS handshaking
       csN           set character size to N bits, N in [5..8]
       [-]cstopb     use two stop bits per character (one with `-')
       [-]hup        send a hangup signal when the last process closes the tty
       [-]hupcl      same as [-]hup
       [-]parenb     generate parity bit in output and expect parity bit in input
       [-]parodd     set odd parity (even with `-')
    
    Input settings:
       [-]brkint     breaks cause an interrupt signal
       [-]icrnl      translate carriage return to newline
       [-]ignbrk     ignore break characters
       [-]igncr      ignore carriage return
       [-]ignpar     ignore characters with parity errors
     * [-]imaxbel    beep and do not flush a full input buffer on a character
       [-]inlcr      translate newline to carriage return
       [-]inpck      enable input parity checking
       [-]istrip     clear high (8th) bit of input characters
     * [-]iutf8      assume input characters are UTF-8 encoded
     * [-]iuclc      translate uppercase characters to lowercase
     * [-]ixany      let any character restart output, not only start character
       [-]ixoff      enable sending of start/stop characters
       [-]ixon       enable XON/XOFF flow control
       [-]parmrk     mark parity errors (with a 255-0-character sequence)
       [-]tandem     same as [-]ixoff
    
    Output settings:
     * bsN           backspace delay style, N in [0..1]
     * crN           carriage return delay style, N in [0..3]
     * ffN           form feed delay style, N in [0..1]
     * nlN           newline delay style, N in [0..1]
     * [-]ocrnl      translate carriage return to newline
     * [-]ofdel      use delete characters for fill instead of null characters
     * [-]ofill      use fill (padding) characters instead of timing for delays
     * [-]olcuc      translate lowercase characters to uppercase
     * [-]onlcr      translate newline to carriage return-newline
     * [-]onlret     newline performs a carriage return
     * [-]onocr      do not print carriage returns in the first column
       [-]opost      postprocess output
     * tabN          horizontal tab delay style, N in [0..3]
     * tabs          same as tab0
     * -tabs         same as tab3
     * vtN           vertical tab delay style, N in [0..1]
    
    Local settings:
       [-]crterase   echo erase characters as backspace-space-backspace
     * crtkill       kill all line by obeying the echoprt and echoe settings
     * -crtkill      kill all line by obeying the echoctl and echok settings
     * [-]ctlecho    echo control characters in hat notation (`^c')
       [-]echo       echo input characters
     * [-]echoctl    same as [-]ctlecho
       [-]echoe      same as [-]crterase
       [-]echok      echo a newline after a kill character
     * [-]echoke     same as [-]crtkill
       [-]echonl     echo newline even if not echoing other characters
     * [-]echoprt    echo erased characters backward, between `\' and '/'
       [-]icanon     enable erase, kill, werase, and rprnt special characters
       [-]iexten     enable non-POSIX special characters
       [-]isig       enable interrupt, quit, and suspend special characters
       [-]noflsh     disable flushing after interrupt and quit special characters
     * [-]prterase   same as [-]echoprt
     * [-]tostop     stop background jobs that try to write to the terminal
     * [-]xcase      with icanon, escape with `\' for uppercase characters
    
    Combination settings:
     * [-]LCASE      same as [-]lcase
       cbreak        same as -icanon
       -cbreak       same as icanon
       cooked        same as brkint ignpar istrip icrnl ixon opost isig
                     icanon, eof and eol characters to their default values
       -cooked       same as raw
       crt           same as echoe echoctl echoke
       dec           same as echoe echoctl echoke -ixany intr ^c erase 0177
                     kill ^u
     * [-]decctlq    same as [-]ixany
       ek            erase and kill characters to their default values
       evenp         same as parenb -parodd cs7
       -evenp        same as -parenb cs8
     * [-]lcase      same as xcase iuclc olcuc
       litout        same as -parenb -istrip -opost cs8
       -litout       same as parenb istrip opost cs7
       nl            same as -icrnl -onlcr
       -nl           same as icrnl -inlcr -igncr onlcr -ocrnl -onlret
       oddp          same as parenb parodd cs7
       -oddp         same as -parenb cs8
       [-]parity     same as [-]evenp
       pass8         same as -parenb -istrip cs8
       -pass8        same as parenb istrip cs7
       raw           same as -ignbrk -brkint -ignpar -parmrk -inpck -istrip
                     -inlcr -igncr -icrnl  -ixon  -ixoff  -iuclc  -ixany
                     -imaxbel -opost -isig -icanon -xcase min 1 time 0
       -raw          same as cooked
       sane          same as cread -ignbrk brkint -inlcr -igncr icrnl -iutf8
                     -ixoff -iuclc -ixany imaxbel opost -olcuc -ocrnl onlcr
                     -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0
                     isig icanon iexten echo echoe echok -echonl -noflsh
                     -xcase -tostop -echoprt echoctl echoke, all special
                     characters to their default values.
    
    Handle the tty line connected to standard input.  Without arguments,
    prints baud rate, line discipline, and deviations from stty sane.  In
    settings, CHAR is taken literally, or coded as in ^c, 0x37, 0177 or
    127; special values ^- or undef used to disable special characters.
    
    Report bugs to <bug-coreutils@gnu.org>.
    machi:~# stty iutf8
    stty: invalid argument `iutf8'
    Try `stty --help' for more information.
    Thanks!!

  4. #4
    Linux Enthusiast KenJackson's Avatar
    Join Date
    Jun 2006
    Location
    Maryland, USA
    Posts
    510
    Not sure. The console-tools package (at least on Mandriva) has command 'unicode_stop' to put the screen and keyboard in 8-bit mode, and various other keyboard and console related commands.

  5. #5
    hcz
    hcz is offline
    Just Joined!
    Join Date
    Jul 2006
    Posts
    5

    Problem solved

    Problem is now solved. Errors in the messages was caused by unprotected cable which took disturbance from other electrical cables. I recommend others with same kind of problems to use protected cables.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •