各位大大,小弟用超级终端写中文短信手机能受到,
用自己写的发送英文的信息手机也能收到,            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;各位大大 指点指点吧

解决方案 »

  1.   

    串口上监测到的 成功了 但就是收不到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
      

  2.   

    AT改成AT+CMGF=0真小气 一毛不拔
      

  3.   

    我的是  AT+CMGF=0 
    pdu格式的嘛
      

  4.   

    最后串口返回 OK 了吗?毙掉 //p.Write("AT+CSMP=17,167,0,240\r"); 再试试
      

  5.   

    回复6楼
                    byte[] s = new byte[2];
                    p.Read(s, 0, 2);
                    string str = System.Text.Encoding.ASCII.GetString(s);
    这样是不是就是在代码中去AT指令的返回值  如果是的话 返回的是  AT  不是OK
    如果不是,请问如何获取指令的返回值
      

  6.   

    问题找到了
                    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);