Reading from serial port
8 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Hi, I need to interface MATLAB with a COM port to read data from sensors. Here is my MATLAB code.
s = serial('COM5');
s.BaudRate = 115200;
fopen(s);
tic
for i = 1:25
an = fscanf(s,'%c');
end
toc
fclose(s);
I have used "tic" "toc" for measuring execution time to read 25 values and its almost 5 seconds. This is pretty slow. 115200 is the max Baud Rate.
Is there a better/faster way to read from a serial port???
Thanks all
0 comentarios
Respuestas (1)
Ankit Desai
el 9 de Feb. de 2011
Akash,
You might be getting the data slowly. The delay might be caused by fscanf waiting for data to be available. As listed in the documentation - fscanf waits for data to be available until a timeout occurs.
You can confirm the same by checking that there 50 bytes available (25 bytes for character values + 25 bytes for terminator values) before you call the fscanf(s) in the for loop.
You can do so by checking the BytesAvailable field of the object.
s.BytesAvailable
I tried the same and was able to do so in < 1 second.
Hope this helps,
-Ankit
0 comentarios
Ver también
Categorías
Más información sobre Startup and Shutdown en Help Center y File Exchange.
Productos
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!