MatlabGUI,带字符输出的滑块

MatlabGUI,带字符输出的滑块,matlab,user-interface,slider,serial-port,matlab-guide,Matlab,User Interface,Slider,Serial Port,Matlab Guide,我想让一个GUI有一个滑块,这个滑块的值将被用来传输串行数据到PIC微控制器 滑块的输出值必须是字符或字符串 如何在MatlabGUI中定义enter code here变量 如何知道滑块输出值的类型?(int,char,…) 代码: 一般来说,滑块的输出值将具有int类型。我希望是int,因为滑块的性质是沿着某种递增/递减的数字滑动 您还可以使用matlab中的“class()”函数来确定变量的类别 此外,通过在滑块的回调例程中指定滑块,可以使滑块提供所需的任何输出 一般来说,滑块的输出值将具

我想让一个GUI有一个滑块,这个滑块的值将被用来传输串行数据到PIC微控制器

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

  • 如何在MatlabGUI中定义enter code here变量

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

  • 代码:


    一般来说,滑块的输出值将具有int类型。我希望是int,因为滑块的性质是沿着某种递增/递减的数字滑动

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


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

    一般来说,滑块的输出值将具有int类型。我希望是int类型,因为滑块的性质是沿着某种类型的递增/递减数字滑动

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

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

    有用信息:

    Value
    属性的类型是它当前具有的标量值。该值将介于
    Min
    Max
    之间,分别默认为0和1。您是否将这些设置为其他值?标量值可能采用双精度表示,因此需要转换为字符串:

    将其放入init部分(从0到100的滑块):

    在您的回调例程中:

    s = serial('COM7');
    slider_value = get(handles.slider3, 'Value');
    fopen(s);
    fprintf(s, '%u', uint32(slider_value));
    fclose(s)
    
    以上只是一个例子。您应该将
    Min
    Max
    SliderStep
    设置为所需。查找我在开头链接到的UIcontrol属性文档中的相关部分。您还应该注意,我以无符号32位值(不是重铸)的形式发送数据。

    有用信息:

    Value
    属性的类型是它当前具有的标量值。该值将介于
    Min
    Max
    之间,分别默认为0和1。您是否将这些设置为其他值?标量值可能采用双精度表示,因此需要转换为字符串:

    将其放入init部分(从0到100的滑块):

    在您的回调例程中:

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

    以上只是一个例子。您应该将
    Min
    Max
    SliderStep
    设置为所需。查找我在开头链接到的UIcontrol属性文档中的相关部分。您还应该注意,我以无符号32位值(不是重铸)的形式发送数据。

    但我是否应该将数据转换为字符以便串行发送?到字符数组(MATLAB中的字符串类型)的转换正在通过
    fprintf
    函数进行。我使用模式
    '%u'
    来格式化32位无符号整数。我使用
    uint32
    来允许尽可能大的范围。在这个特定的示例中,如果范围从0到100,您也可以使用
    uint16
    uint8
    。但是我是否应该将数据转换为字符以便串行发送?到字符数组(MATLAB中的字符串类型)的转换正在通过
    fprintf
    函数进行。我使用模式
    '%u'
    来格式化32位无符号整数。我使用
    uint32
    来允许尽可能大的范围。在此特定示例中,如果范围为0到100,您也可以使用
    uint16
    uint8
    s = serial('COM7');
    slider_value = get(handles.slider3, 'Value');
    fopen(s);
    fprintf(s, '%u', uint32(slider_value));
    fclose(s)