Вопрос

I am working with COM port and I am getting a value (e.g. temperature value) from COM. Now when I am trying to subtract a specific value (e.g. 8) from this value it is not showing desired value. Here is the code:

function pushbutton1_Callback(hObject, eventdata, handles)
  instrreset; %resets the serial devices
  clc;
  s = serial ('COM6');
  RxText3 = fscanf(handles.serConn);
  key = 8;
  P = minus(RxText3,key);
  set(handles.tempserial,'string',P);
  fclose(s);

What I am expecting: Suppose I am getting a value as 32 and my key value is 8. Then I am expecting to get 24.

What I am getting: I am getting two values as 42 and 45.

Additional problem:

How can I set the value so that it would show 24 Celcius? I tried this : set(handles.tempserial,'string',P, 'Celcius') in which case nothing is shown.

Это было полезно?

Решение

Your variable name RxText3 suggests that RxText3 contains a char array. To verify this set a breakpoint and check class(RxText3). If so, you have to convert the output to a double value, use str2double

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top