1

GUI にスライダーを持たせたいのですが、このスライダーの値はシリアル データを PIC マイクロコントローラーに送信するために使用されます。

スライダーの出力値は、文字または文字列でなければなりません。

  1. matlab guiでEnter code here変数を定義するにはどうすればよいですか?

  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現在持っているスカラー値です。この値は と の間Minで、Maxデフォルトはそれぞれ 0 と 1 です。これらを他の値に設定しましたか? スカラー値は double 表現になる可能性が高いため、文字列に変換する必要があります。

これを 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)

上記はほんの一例です。MinMax、およびを必要なものに設定する必要がありSliderStepます。最初にリンクした UIcontrol プロパティのドキュメントで関連するセクションを見つけてください。また、データを符号なしの 32 ビット値 (リキャストではない) として送信することにも注意してください。

于 2012-06-24T18:47:15.860 に答える
0

一般に、スライダーの出力値は int 型になります。何らかの種類の数値の増減に沿ってスライドするスライダーの性質上、int が期待されます。

また、matlab の 'class()' 関数を使用して、変数のクラスを決定することもできます。

さらに、スライダーのコールバック ルーチンで指定することにより、必要な出力をスライダーに与えることができます。

于 2012-06-24T18:42:12.310 に答える