关于C#写AT指令控制TC35发送中文短信问题 求解!

liming0619 2009-12-02 12:08:55
各位大大,小弟用超级终端写中文短信手机能受到,
用自己写的发送英文的信息手机也能收到,

SerialPort p = new SerialPort("COM3",9600);
p.Open();
p.Write("AT+CMGF=1\r");
Thread.Sleep(1000);
p.Write("AT+CMGS=" + this.maskedTextBox1.Text + "\r");
Thread.Sleep(1000);
p.Write(this.maskedTextBox2.Text);
byte[] b2 = new byte[] { 0x00, 0x1a };
p.Write(b2, 0, b2.Length);
p.Close();


但是自己写的发送中文短信就收不到了(中文编码没问题,我直接把程序中拼出来的指令到超级终端中都发送成功),检测串口也有数据

SerialPort p = new SerialPort(comPort, baudRate);
string message = "";
message += "089168";
char[] tmpSMSCphone = (SMSCphone + "F").ToCharArray();
for (int i = 0; i < tmpSMSCphone.Length; i+=2)
{
message += tmpSMSCphone[i + 1].ToString();
message += tmpSMSCphone[i].ToString();

}
message += "11000D9168";
char[] tmpReceivePhone = (receivePhone + "F").ToCharArray();
for (int i = 0; i < receivePhone.Length; i+=2)
{
message += tmpReceivePhone[i + 1].ToString();
message += tmpReceivePhone[i].ToString();
}
message += "000800";
byte[] tmpNote = Encoding.Unicode.GetBytes(note);
message += tmpNote.Length.ToString("X2");
for (int i = 0; i < tmpNote.Length; i += 2)
{
message += tmpNote[i + 1].ToString("X2");//("X2")转为16进制
message += tmpNote[i].ToString("X2");
}
int tmpLength = (message.Length - 18) / 2;
try
{
p.Open();
p.Write("AT+CMGF=0\r");
Thread.Sleep(1000);
p.Write("AT+CSMP=17,167,0,240\r");
Thread.Sleep(1000);
p.Write("AT+CMGS=" + tmpLength + "\r");
Thread.Sleep(1000);
p.Write(message);

byte[] b2 = new byte[] { 0x00, 0x1a };
p.Write(b2, 0, b2.Length);
p.Close();

return true;

各位大大 指点指点吧
...全文
530 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
liming0619 2009-12-03
  • 打赏
  • 举报
回复
问题找到了
                byte[] b2 = new byte[] { 0x00, 0x1a };
p.Write(b2, 0, b2.Length);

是这错了
应该下面这么写,主要是crtl+z的ASCII码的问题.
 p.Write(System.Text.Encoding.ASCII.GetBytes("\x1A"),0,System.Text.Encoding.ASCII.GetBytes("\x1A").Length);

it_gz_xi 2009-12-02
  • 打赏
  • 举报
回复
编码问题吧
liming0619 2009-12-02
  • 打赏
  • 举报
回复
回复6楼


                byte[] s = new byte[2];
p.Read(s, 0, 2);
string str = System.Text.Encoding.ASCII.GetString(s);

这样是不是就是在代码中去AT指令的返回值 如果是的话 返回的是 AT 不是OK
如果不是,请问如何获取指令的返回值
gghlkk 2009-12-02
  • 打赏
  • 举报
回复
最后串口返回 OK 了吗?

毙掉 //p.Write("AT+CSMP=17,167,0,240\r"); 再试试
liming0619 2009-12-02
  • 打赏
  • 举报
回复
我的是 AT+CMGF=0
pdu格式的嘛
liming0619 2009-12-02
  • 打赏
  • 举报
回复
没分啊 大哥 有全压了
gghlkk 2009-12-02
  • 打赏
  • 举报
回复
AT改成AT+CMGF=0

真小气 一毛不拔
liming0619 2009-12-02
  • 打赏
  • 举报
回复
串口上监测到的 成功了 但就是收不到0 0.06275267 WindowsApplicat IRP_MJ_CREATE Serial2 SUCCESS Options: Open
1 0.00000419 WindowsApplicat IOCTL_SERIAL_GET_PROPERTIES Serial2 SUCCESS
2 0.00000251 WindowsApplicat IOCTL_SERIAL_GET_MODEMSTATUS Serial2 SUCCESS
3 0.00000168 WindowsApplicat IOCTL_SERIAL_GET_BAUD_RATE Serial2 SUCCESS
4 0.00000140 WindowsApplicat IOCTL_SERIAL_GET_LINE_CONTROL Serial2 SUCCESS
5 0.00000140 WindowsApplicat IOCTL_SERIAL_GET_CHARS Serial2 SUCCESS
6 0.00000140 WindowsApplicat IOCTL_SERIAL_GET_HANDFLOW Serial2 SUCCESS
7 0.00000196 WindowsApplicat IOCTL_SERIAL_GET_BAUD_RATE Serial2 SUCCESS
8 0.00000140 WindowsApplicat IOCTL_SERIAL_GET_LINE_CONTROL Serial2 SUCCESS
9 0.00000140 WindowsApplicat IOCTL_SERIAL_GET_CHARS Serial2 SUCCESS
10 0.00000140 WindowsApplicat IOCTL_SERIAL_GET_HANDFLOW Serial2 SUCCESS
11 0.00357587 WindowsApplicat IOCTL_SERIAL_SET_BAUD_RATE Serial2 SUCCESS Rate: 9600
12 0.00298557 WindowsApplicat IOCTL_SERIAL_SET_RTS Serial2 SUCCESS
13 0.00294423 WindowsApplicat IOCTL_SERIAL_CLR_DTR Serial2 SUCCESS
14 0.00398486 WindowsApplicat IOCTL_SERIAL_SET_LINE_CONTROL Serial2 SUCCESS StopBits: 1 Parity: NONE WordLength: 8
15 0.00000307 WindowsApplicat IOCTL_SERIAL_SET_CHAR Serial2 SUCCESS EOF:1a ERR:0 BRK:0 EVT:1a XON:11 XOFF:13
16 0.00294116 WindowsApplicat IOCTL_SERIAL_SET_HANDFLOW Serial2 SUCCESS Shake:0 Replace:40 XonLimit:1024 XoffLimit:1024
17 0.00000223 WindowsApplicat IOCTL_SERIAL_GET_BAUD_RATE Serial2 SUCCESS
18 0.00000196 WindowsApplicat IOCTL_SERIAL_GET_LINE_CONTROL Serial2 SUCCESS
19 0.00000168 WindowsApplicat IOCTL_SERIAL_GET_CHARS Serial2 SUCCESS
20 0.00000196 WindowsApplicat IOCTL_SERIAL_GET_HANDFLOW Serial2 SUCCESS
21 0.00391391 WindowsApplicat IOCTL_SERIAL_SET_BAUD_RATE Serial2 SUCCESS Rate: 9600
22 0.00295289 WindowsApplicat IOCTL_SERIAL_SET_RTS Serial2 SUCCESS
23 0.00298474 WindowsApplicat IOCTL_SERIAL_CLR_DTR Serial2 SUCCESS
24 0.00395749 WindowsApplicat IOCTL_SERIAL_SET_LINE_CONTROL Serial2 SUCCESS StopBits: 1 Parity: NONE WordLength: 8
25 0.00000279 WindowsApplicat IOCTL_SERIAL_SET_CHAR Serial2 SUCCESS EOF:1a ERR:0 BRK:0 EVT:1a XON:11 XOFF:13
26 0.00000223 WindowsApplicat IOCTL_SERIAL_SET_HANDFLOW Serial2 SUCCESS Shake:0 Replace:40 XonLimit:1024 XoffLimit:1024
27 0.00290177 WindowsApplicat IOCTL_SERIAL_CLR_DTR Serial2 SUCCESS
28 0.00000279 WindowsApplicat IOCTL_SERIAL_GET_BAUD_RATE Serial2 SUCCESS
29 0.00000140 WindowsApplicat IOCTL_SERIAL_GET_LINE_CONTROL Serial2 SUCCESS
30 0.00000140 WindowsApplicat IOCTL_SERIAL_GET_CHARS Serial2 SUCCESS
31 0.00000140 WindowsApplicat IOCTL_SERIAL_GET_HANDFLOW Serial2 SUCCESS
32 0.00388150 WindowsApplicat IOCTL_SERIAL_SET_BAUD_RATE Serial2 SUCCESS Rate: 9600
33 0.00297077 WindowsApplicat IOCTL_SERIAL_CLR_RTS Serial2 SUCCESS
34 0.00297300 WindowsApplicat IOCTL_SERIAL_CLR_DTR Serial2 SUCCESS
35 0.00399855 WindowsApplicat IOCTL_SERIAL_SET_LINE_CONTROL Serial2 SUCCESS StopBits: 1 Parity: NONE WordLength: 8
36 0.00000363 WindowsApplicat IOCTL_SERIAL_SET_CHAR Serial2 SUCCESS EOF:1a ERR:0 BRK:0 EVT:1a XON:11 XOFF:13
37 0.00293473 WindowsApplicat IOCTL_SERIAL_SET_HANDFLOW Serial2 SUCCESS Shake:0 Replace:0 XonLimit:1024 XoffLimit:1024
38 0.00296658 WindowsApplicat IOCTL_SERIAL_CLR_RTS Serial2 SUCCESS
39 0.00000279 WindowsApplicat IOCTL_SERIAL_SET_TIMEOUTS Serial2 SUCCESS RI:-1 RM:-1 RC:-2 WM:0 WC:0
40 0.00000419 WindowsApplicat IOCTL_SERIAL_SET_WAIT_MASK Serial2 SUCCESS Mask: RXCHAR RXFLAG CTS DSR RLSD BRK ERR RING
41 0.00000391 WindowsApplicat IOCTL_SERIAL_SET_QUEUE_SIZE Serial2 SUCCESS InSize: 4096 OutSize: 2048
42 0.00072970 WindowsApplicat IRP_MJ_WRITE Serial2 SUCCESS Length 10: AT+CMGF=0.
43 0.05325537 WindowsApplicat IOCTL_SERIAL_WAIT_ON_MASK Serial2 SUCCESS
44 0.00069730 WindowsApplicat IOCTL_SERIAL_WAIT_ON_MASK Serial2 SUCCESS
45 0.00093671 WindowsApplicat IOCTL_SERIAL_WAIT_ON_MASK Serial2 SUCCESS
46 0.00096046 WindowsApplicat IOCTL_SERIAL_WAIT_ON_MASK Serial2 SUCCESS
47 0.00093001 WindowsApplicat IOCTL_SERIAL_WAIT_ON_MASK Serial2 SUCCESS
48 0.03597524 WindowsApplicat IOCTL_SERIAL_WAIT_ON_MASK Serial2 SUCCESS
49 0.00091185 WindowsApplicat IOCTL_SERIAL_WAIT_ON_MASK Serial2 SUCCESS
50 0.00093643 WindowsApplicat IOCTL_SERIAL_WAIT_ON_MASK Serial2 SUCCESS
51 0.00094900 WindowsApplicat IOCTL_SERIAL_WAIT_ON_MASK Serial2 SUCCESS
52 0.00095291 WindowsApplicat IOCTL_SERIAL_WAIT_ON_MASK Serial2 SUCCESS
53 0.01395540 WindowsApplicat IOCTL_SERIAL_WAIT_ON_MASK Serial2 SUCCESS
54 0.00030395 WindowsApplicat IOCTL_SERIAL_WAIT_ON_MASK Serial2 SUCCESS
55 0.00093783 WindowsApplicat IOCTL_SERIAL_WAIT_ON_MASK Serial2 SUCCESS
56 0.00094425 WindowsApplicat IOCTL_SERIAL_WAIT_ON_MASK Serial2 SUCCESS
57 0.00093839 WindowsApplicat IOCTL_SERIAL_WAIT_ON_MASK Serial2 SUCCESS
58 0.00094593 WindowsApplicat IOCTL_SERIAL_WAIT_ON_MASK Serial2 SUCCESS
59 0.94897480 WindowsApplicat IOCTL_SERIAL_WAIT_ON_MASK Serial2 SUCCESS
60 0.00056488 WindowsApplicat IRP_MJ_WRITE Serial2 SUCCESS Length 21: AT+CSMP=17,167,0,240.
61 0.00089481 WindowsApplicat IOCTL_SERIAL_WAIT_ON_MASK Serial2 SUCCESS
62 0.00094006 WindowsApplicat IOCTL_SERIAL_WAIT_ON_MASK Serial2 SUCCESS
63 0.00095850 WindowsApplicat IOCTL_SERIAL_WAIT_ON_MASK Serial2 SUCCESS
64 0.00095347 WindowsApplicat IOCTL_SERIAL_WAIT_ON_MASK Serial2 SUCCESS
65 0.00095599 WindowsApplicat IOCTL_SERIAL_WAIT_ON_MASK Serial2 SUCCESS
66 0.00095543 WindowsApplicat IOCTL_SERIAL_WAIT_ON_MASK Serial2 SUCCESS
67 0.00095375 WindowsApplicat IOCTL_SERIAL_WAIT_ON_MASK Serial2 SUCCESS
68 0.00095710 WindowsApplicat IOCTL_SERIAL_WAIT_ON_MASK Serial2 SUCCESS
69 0.00096409 WindowsApplicat IOCTL_SERIAL_WAIT_ON_MASK Serial2 SUCCESS
70 0.00096241 WindowsApplicat IOCTL_SERIAL_WAIT_ON_MASK Serial2 SUCCESS
71 0.00094174 WindowsApplicat IOCTL_SERIAL_WAIT_ON_MASK Serial2 SUCCESS
72 0.00095515 WindowsApplicat IOCTL_SERIAL_WAIT_ON_MASK Serial2 SUCCESS
73 0.00095515 WindowsApplicat IOCTL_SERIAL_WAIT_ON_MASK Serial2 SUCCESS
74 0.00095180 WindowsApplicat IOCTL_SERIAL_WAIT_ON_MASK Serial2 SUCCESS
75 0.00094397 WindowsApplicat IOCTL_SERIAL_WAIT_ON_MASK Serial2 SUCCESS
76 0.00095319 WindowsApplicat IOCTL_SERIAL_WAIT_ON_MASK Serial2 SUCCESS
77 0.00195695 WindowsApplicat IOCTL_SERIAL_WAIT_ON_MASK Serial2 SUCCESS
78 0.00095040 WindowsApplicat IOCTL_SERIAL_WAIT_ON_MASK Serial2 SUCCESS
79 0.00095738 WindowsApplicat IOCTL_SERIAL_WAIT_ON_MASK Serial2 SUCCESS
80 0.00094146 WindowsApplicat IOCTL_SERIAL_WAIT_ON_MASK Serial2 SUCCESS
81 0.03995927 WindowsApplicat IOCTL_SERIAL_WAIT_ON_MASK Serial2 SUCCESS
82 0.00094286 WindowsApplicat IOCTL_SERIAL_WAIT_ON_MASK Serial2 SUCCESS
83 0.00092777 WindowsApplicat IOCTL_SERIAL_WAIT_ON_MASK Serial2 SUCCESS
84 0.00095487 WindowsApplicat IOCTL_SERIAL_WAIT_ON_MASK Serial2 SUCCESS
85 0.00095627 WindowsApplicat IOCTL_SERIAL_WAIT_ON_MASK Serial2 SUCCESS
86 0.00094342 WindowsApplicat IOCTL_SERIAL_WAIT_ON_MASK Serial2 SUCCESS
87 0.95297559 WindowsApplicat IOCTL_SERIAL_WAIT_ON_MASK Serial2 SUCCESS
88 0.00110684 WindowsApplicat IRP_MJ_WRITE Serial2 SUCCESS Length 11: AT+CMGS=19.
89 0.00089872 WindowsApplicat IOCTL_SERIAL_WAIT_ON_MASK Serial2 SUCCESS
90 0.00095040 WindowsApplicat IOCTL_SERIAL_WAIT_ON_MASK Serial2 SUCCESS
91 0.00097191 WindowsApplicat IOCTL_SERIAL_WAIT_ON_MASK Serial2 SUCCESS
92 0.00091157 WindowsApplicat IOCTL_SERIAL_WAIT_ON_MASK Serial2 SUCCESS
93 0.00195444 WindowsApplicat IOCTL_SERIAL_WAIT_ON_MASK Serial2 SUCCESS
94 0.00095208 WindowsApplicat IOCTL_SERIAL_WAIT_ON_MASK Serial2 SUCCESS
95 0.00094900 WindowsApplicat IOCTL_SERIAL_WAIT_ON_MASK Serial2 SUCCESS
96 0.00095543 WindowsApplicat IOCTL_SERIAL_WAIT_ON_MASK Serial2 SUCCESS
97 0.00097219 WindowsApplicat IOCTL_SERIAL_WAIT_ON_MASK Serial2 SUCCESS
98 0.00094425 WindowsApplicat IOCTL_SERIAL_WAIT_ON_MASK Serial2 SUCCESS
99 0.01395094 WindowsApplicat IOCTL_SERIAL_WAIT_ON_MASK Serial2 SUCCESS
100 0.00090458 WindowsApplicat IOCTL_SERIAL_WAIT_ON_MASK Serial2 SUCCESS
101 0.00094705 WindowsApplicat IOCTL_SERIAL_WAIT_ON_MASK Serial2 SUCCESS
102 0.00095264 WindowsApplicat IOCTL_SERIAL_WAIT_ON_MASK Serial2 SUCCESS
103 0.91007265 WindowsApplicat IOCTL_SERIAL_WAIT_ON_MASK Serial2 SUCCESS
104 0.00112808 WindowsApplicat IRP_MJ_WRITE Serial2 SUCCESS Length 56: 0891683108501705F011000D91685188790014F3000800049ECE660E
105 0.00090458 WindowsApplicat IRP_MJ_WRITE Serial2 SUCCESS Length 2: ..
106 0.00000307 WindowsApplicat IRP_MJ_FLUSH_BUFFERS Serial2 SUCCESS
107 0.00001117 WindowsApplicat IOCTL_SERIAL_SET_WAIT_MASK Serial2 SUCCESS Mask:
108 0.00285623 WindowsApplicat IOCTL_SERIAL_CLR_DTR Serial2 SUCCESS
109 0.00000335 WindowsApplicat IRP_MJ_FLUSH_BUFFERS Serial2 SUCCESS
110 0.00000391 WindowsApplicat IOCTL_SERIAL_PURGE Serial2 SUCCESS Purge: RXABORT RXCLEAR
111 0.00000223 WindowsApplicat IOCTL_SERIAL_PURGE Serial2 SUCCESS Purge: TXABORT TXCLEAR
112 0.00000251 WindowsApplicat IRP_MJ_CLEANUP Serial2 SUCCESS
113 0.01877334 WindowsApplicat IRP_MJ_CLOSE Serial2 SUCCESS

110,535

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧