Serial Communication in Maltab using Linux 64 Bit

I use Matlab 2015a (64 Bit) on a Ubuntu Linux distribution system. I want to build a communication to a device with a RS232 port. For this task I use a USB to RS232 converter cabel. In Linux I get the information, that the cable is connected to ttyUSB0. But if i want to start the communication over Matlab with:
s = serial('/dev/ttyUSB0', 'BaudRate', 9600);
fopen(s)
I get the error:
Error using serial/fopen (line 72)
Open failed: Port: /dev/ttyUSB0 is not available. ....
I tested this process on a WIN System and there is no problem. The communication runs pretty well. Have anyone experieances with Linux/Matlab and serial communication?

1 Kommentar

This is in fact a Linux permissions problem rather than a Matlab problem. To test permissions see if there is a difference between
sudo stty -a -F /dev/ttyUSB0
and
stty -a -F /dev/ttyUSB0
If the latter says 'permission denied' or similar then you are probably not a member of the relevant group. The group on the USB port can be seen by using
ls -l /dev/ttyUSB0
and can be changed via
sudo usermod -aG groupname username
e.g.
sudo -aG dialout harrypotter
Check membership via the `group' command (a reboot may be necessary)

Melden Sie sich an, um zu kommentieren.

Antworten (2)

2 Stimmen

I followed other way. I got exactly the same error (Over Manjaro distribution) and of course is about permissions:
  • From terminal:
sudo chmod +777 /run/lock
sudo chmod +777 /dev/ttyACM0
  • From Matlab:
% Scan all serial ports
serialPorts = serialportlist
% Get serial port i want as serial communication
ACM0 = serial(serialPorts(1))
% Open file (now works)
fopen(ACM0)
% Read data all data available
data = fread(ACM0, ACM0.BytesAvailable);

1 Kommentar

Thanky you! the solution that you have mentioned helpd me in resolving the problem.

Melden Sie sich an, um zu kommentieren.

Kategorien

Gefragt:

am 9 Jul. 2015

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by