⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sendsms.m

📁 MATLAB中通过串口发送手机中文短消息的示范程序
💻 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 + -