I am trying to read data through serial communication in matlab
I am reading 2 bytes of data
First byte is zero for most of the times and 2nd byte contains information.
I am getting timeout error Is there any command to read data starting with zeros Warning: Unsuccessful read: A timeout occurred.
Code: nexys = serial('COM1', 'BaudRate', 9600, 'Parity', 'odd', 'Terminator', '', 'Timeout', 1); fopen(nexys); myNum = 4563; %fprintf(nexys, 'd1539'); %Fungerar %fprintf(nexys, 'd%4d', myNum); %Fungerar for i=1:2 fprintf(nexys, 's'); scan_s1 = fscanf(nexys,'%s')-0; fprintf(nexys, 't'); scan_s2 = fscanf(nexys,'%s')-0; end
Can anybody suggest something about this
You try to read a string but do not define a terminator. Even the the LF terminator, the string might not be terminated, when no LF appears in the data stream. So are you sure, that FSCANF for a string is what you want?
FREAD read all values, while the import of a string might be impeded by a zero byte, because they terminate strings in C.
Play games and win prizes!Learn more