How to read data every second in serial communications using matlab

2 Ansichten (letzte 30 Tage)
sushma gunde
sushma gunde am 31 Aug. 2015
Kommentiert: sushma gunde am 31 Aug. 2015
Hello, I would like to read data every one second from the device but i am unable to do it. I have tried with the following code. Here is the code...
s=serial('COM1','BAU',9600,'parity','none','databits',8,'stopbits',1,'terminator','CR/LF')
fopen(s)
fid2=fopen('pressure1.txt','w')
fprintf(fid2,'%s\t\t\t %s\n','time','pressure')
fprintf(s,'%s\r\n','PR1')
while true
out2=fscanf(s)
sr2=datestr(clock,0)
if ~isempty(out2)
fprintf(fid2,'%s: %s\n',sr2,out2)
pause(1)
end
end
fclose(fid2)

Antworten (1)

Walter Roberson
Walter Roberson am 31 Aug. 2015
fprintf(s,'PR1')
The default format is '%s\n' . Each \n is replaced with the terminator you configured so you do not need to specifically send \r\n when you have configured CR/LF as the terminator. Notice you did not specifically send \r\n in your later fprintf
  2 Kommentare
sushma gunde
sushma gunde am 31 Aug. 2015
Bearbeitet: sushma gunde am 31 Aug. 2015
@walter I tried using this also but i dont find any result. whenever i restart my device i will get the output like this:
time pressure measuremnt1
26-Aug-2015 16:51:19 0, 7.5800E-05,5, 2.0000E-02
and when i dont restart my device then my ouput looks like this :
warning: Unsuccessful read: A timeout occurred before the Terminator was reached.
out2 =
''
sr2 =
31-Aug-2015 16:22:26
sushma gunde
sushma gunde am 31 Aug. 2015
@walter can you suggest me some ways how to get the output every second. for example:
26-Aug-2015 16:51:19 0, 7.5800E-05,5, 2.0000E-02
26-Aug-2015 16:51:20 0, 7.5800E-05,5, 2.0000E-02
26-Aug-2015 16:51:21 0, 7.5800E-05,5, 2.0000E-02

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Shifting and Sorting Matrices finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by