Matlab GUI,带有char输出的Slider

时间:2012-06-24 18:27:29

标签: matlab user-interface slider serial-port matlab-guide

我想让GUI有一个滑块,这个滑块的值将用于将串行数据传输到PIC单片机。

滑块的输出值必须是字符或字符串。

  1. 如何在matlab gui中定义输入代码变量?

  2. 如何知道滑块的输出值类型? (int,char,...)

  3. 代码:

    s=serial('COM7');
    slider_value = get(handles.slider3, 'value');
    fopen(s);
    fprintf(s,'%s',slider_value);
    fclose(s)
    

2 个答案:

答案 0 :(得分:1)

有用信息:http://www.mathworks.se/help/techdoc/ref/uicontrol_props.html

Value属性的类型是它当前具有的标量值。此值介于MinMax之间,默认分别为0和1。你有没有把这些设置为其他值?标量值可能是双重表示,因此您需要转换为字符串:

将它放在init-section(滑块从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)

以上只是一个例子。您应该将MinMaxSliderStep设置为您想要的内容。在我开始链接到的UIcontrol属性文档中查找相关部分。您还应注意,我将数据作为无符号32位值(而不是重铸)发送。

答案 1 :(得分:0)

通常,滑块的输出值的类型为int。我期待一个int因为滑块的性质,你可以沿着某种类型的增加/减少数量滑动。

您还可以使用matlab中的'class()'函数来确定变量的类。

此外,您可以通过在滑块的回调例程中指定滑块,使滑块为您提供所需的输出。