Полезная информация: http://www.mathworks.se/help/techdoc/ref/uicontrol_props.html.
Тип свойства Value
- скалярное значение, которое в настоящее время имеет. Это значение будет находиться между Min
и Max
, которое по умолчанию равно 0 и 1 соответственно. Вы установили их в другие значения? Скалярная величина, вероятно, будет в двойном представлении, так что вам нужно преобразовать в строку:
Поместите это в Init-секции (ползунок, который идет от 0 до 100):
set(handles.slider3, 'Min', 0); %set min to 0 (default)
set(handles.slider3, 'Max', 100); %set min to 100 (default)
set(handles.slider3, 'SliderStep', [1 10]);
И это ваша обратная связь:
s = serial('COM7');
slider_value = get(handles.slider3, 'Value');
fopen(s);
fprintf(s, '%u', uint32(slider_value));
fclose(s)
Выше приведен пример. Вы должны установить Min
, Max
и SliderStep
, что вам нужно. Найдите соответствующие разделы в документации по свойствам UIcontrol, с которой я ссылаюсь в начале. Следует также отметить, что я отправляю данные в виде 32-битного значения без знака (а не для перезаписи).
но мне нужно преобразовать данные в char, чтобы отправить их серийно? – user1478421
Преобразование в массив символов (тип строки в MATLAB) осуществляется функцией 'fprintf'. Я использовал шаблон ''% u'' для форматирования 32-разрядного целого числа без знака. Я использовал 'uint32', чтобы разрешить как можно больший диапазон. В этом конкретном примере с диапазоном от 0 до 100 вы также могли использовать 'uint16' или' uint8'. –