そのため、Matlab で AT コマンドを使用して発信者 ID を返していますが、これは実際には問題ではありません。
ASCII番号を返すという事実を除いて、すべてがうまく機能しており、そのASCIIコードをcharに「変換」して、それが何を言っているのかを知ることができるようにする必要があります。
>> s = serial('COM8');
>> fopen(s)
>> fwrite(s, [65 84 43 67 82 67 61 49 13])
>> s
Serial Port Object : Serial-COM8
Communication Settings
Port: COM8
BaudRate: 9600
Terminator: 'LF'
Communication State
Status: open
RecordStatus: off
Read/Write State
TransferStatus: idle
BytesAvailable: 47
ValuesReceived: 0
ValuesSent: 18
>> fread(s, 47)
次のような 47 個の ASCII 番号が返されます (返されたコードのほとんどを削除したことに注意してください)。
ans =
65
84
43
67
82
67
61
49
13
私は次のことを試しました:
char(fread(s,47))
と
z = fread(s,47)
char(z)
しかし、どちらも機能しませんでしたが、
z = [65 84 43 67 82 67 61 49 13]
char(z)
正常に動作します。fread
上記のコードで書いたようなスペースだけでなく、改行を間に挟んだASCIIコードを返すためだと思います。