所以,我使用 AT 命令和 Matlab 来返回呼叫者 ID,但这并不重要。
一切都很好,除了它返回 ASCII 数字,我必须花时间将 ASCII 代码“翻译”为字符,这样我才能知道它在说什么。
>> 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 代码之间带有换行符,而不仅仅是我在上面的代码中写的空格。