有用的信息:http://www.mathworks.se/help/techdoc/ref/uicontrol_props.html。
Value
属性的类型是它当前具有的标量值。该值将在Min
和Max
之间,分别默认为0和1。你是否将这些设置为其他值?标值可能会在双表现,所以你需要转换为字符串:
在你的初始化节将这个(一个滑块从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位值(不是重写)。
但我应该将数据转换为字符以便连续发送? – user1478421
转换为字符数组(在MATLAB中的字符串类型)正在''fprintf'函数。我使用'%u''格式来格式化32位无符号整数。我使用'uint32'来允许尽可能大的范围。在这个具体的例子中,范围从0到100,你也可以使用'uint16'或'uint8'。 –