📄 sendsms.m
字号:
% GB2312 - Unicode 转换表
gut = unitable;
% 输入短消息文字
msg = inputdlg('输入短消息(70个汉字):', 'SMS');
msg = msg{1};
if length(msg) > 70
fprintf('短消息过长\n');
return;
end
% 输入对方电话号码
phone = inputdlg('输入对方电话号码(11位数字):', 'SMS');
phone = phone{1};
if length(phone) ~= 11
fprintf('电话号码长度不对\n');
return;
end
% 生成半字节倒序格式的电话号码
phone = ['86' phone 'F'];
p = phone;
p(1:2:end-1) = phone(2:2:end);
p(2:2:end) = phone(1:2:end-1);
% GB2312 - Unicode编码转换
gb = double(msg);
uni = gb;
for i=1:length(gb)
if gb(i)>127
n = find(gb(i) - 32896 == gut(:,1)); %0x8080
uni(i) = gut(n,2);
end
end
% 生成短消息文本
sms = sprintf('0011000D91%s0008AA%02X', p, 2*length(uni));
uni = sprintf('%04X', uni);
sms = [sms uni];
% 发送短消息
s=serial('com4','Terminator','CR','Timeout',3);
fopen(s);
try
cmd = 'AT+CMGF=0';
fprintf(s, cmd)
catch
end
try
cmd = sprintf('AT+CMGS=%d', length(sms)/2-1);
fprintf(s, cmd)
catch
end
try
cmd = sprintf('%s\x1a', sms);
fprintf(s, cmd);
catch
end
fclose(s)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -