Serial Communication in Maltab using Linux 64 Bit

35 次查看(过去 30 天)
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 个评论
William Harwin
William Harwin 2017-3-9
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)

请先登录,再进行评论。

回答(2 个)

Álvaro Cortés Sánchez-Migallón
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);

Dasharath Gulvady
Dasharath Gulvady 2015-7-21

Community Treasure Hunt

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

Start Hunting!

Translated by