1

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

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

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

  2. 我怎么知道滑块的输出值的类型?(整数,字符,...)

代码:

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

2 回答 2

1

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

属性的类型Value是它当前拥有的标量值。该值将分别介于0MinMax1 之间,默认为 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)

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

于 2012-06-24T18:47:15.860 回答
0

一般来说,滑块的输出值将具有 int 类型。由于滑块的性质,我期望一个 int ,您在其中滑动以某种增加/减少的数字。

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

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

于 2012-06-24T18:42:12.310 回答