16進数のデータを送受信する方法はありますか?
13 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Instrument Control Toolbox を使用し、外部機器と通信をしています。16進数のデータを送受信する方法を教えてください。下記コードでは、ASCII文字としてデータが送信されてしまいます。
s = serial('COM1');
fopen(s)
fprintf(s,'%X','E8')
fclose(s)
delete(s)
clear s
Respuesta aceptada
MathWorks Support Team
el 19 de Dic. de 2012
Instrument Control Toolbox で16進数の値を送受信する場合は FWRITE/FREAD 関数をご利用ください。FWRITE ではバイナリデータを扱うことが可能です。
s = serial('COM1');
fopen(s);
%%データ定義
txdata = ['01';'E8';'C3';'00';'B2';'F9';'76'];
%10進数へ変換
txdata_dec = hex2dec(txdata);
%Uint8で送信
fwrite(s,tcdata_dec,'uint8');
%データを受信
rxdata_dec = fread(s);
%16進数へ変換
rxdata = dec2hex(rcdata_dec)
fclose(s)
delete(s)
clear s
0 comentarios
Más respuestas (0)
Ver también
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!