我想让GUI有一个滑块,这个滑块的值将用于将串行数据传输到PIC单片机。
滑块的输出值必须是字符或字符串。
如何在matlab gui中定义输入代码变量?
如何知道滑块的输出值类型? (int,char,...)
代码:
s=serial('COM7');
slider_value = get(handles.slider3, 'value');
fopen(s);
fprintf(s,'%s',slider_value);
fclose(s)
答案 0 :(得分:1)
有用信息:http://www.mathworks.se/help/techdoc/ref/uicontrol_props.html。
Value
属性的类型是它当前具有的标量值。此值介于Min
和Max
之间,默认分别为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)
以上只是一个例子。您应该将Min
,Max
和SliderStep
设置为您想要的内容。在我开始链接到的UIcontrol属性文档中查找相关部分。您还应注意,我将数据作为无符号32位值(而不是重铸)发送。
答案 1 :(得分:0)
通常,滑块的输出值的类型为int。我期待一个int因为滑块的性质,你可以沿着某种类型的增加/减少数量滑动。
您还可以使用matlab中的'class()'函数来确定变量的类。
此外,您可以通过在滑块的回调例程中指定滑块,使滑块为您提供所需的输出。