SerialPort sp = new SerialPort("COM1", 9600);
sp.DataReceived += new SerialDataReceivedEventHandler(sp_DataReceived);
sp.Open();
string strCmd = "AT+CSMP=21,167,0,8\r";
sp.Write(strCmd);
Thread.Sleep(100);
strCmd = "AT+CMMS=3\r";
sp.Write(strCmd);
Thread.Sleep(100);
strCmd = "AT+CMGF=1\r";
sp.Write(strCmd);
Thread.Sleep(100);
strCmd = "AT+CMGS=13426023512\r";
sp.Write(strCmd);
Thread.Sleep(100);
strCmd = EncodingUCS2("随便") + "\x1A";
sp.Write(strCmd);
Thread.Sleep(10000); string result = String.Empty;
int size = sp.BytesToRead;
byte[] buffer = new byte[size];
int count = sp.Read(buffer, 0, buffer.Length);
result = Encoding.UTF8.GetString(buffer, 0, count).Replace("\0", ""); sp.Close();int size = sp.BytesToRead;一直是0!
sp.DataReceived += new SerialDataReceivedEventHandler(sp_DataReceived);
sp.Open();
string strCmd = "AT+CSMP=21,167,0,8\r";
sp.Write(strCmd);
Thread.Sleep(100);
strCmd = "AT+CMMS=3\r";
sp.Write(strCmd);
Thread.Sleep(100);
strCmd = "AT+CMGF=1\r";
sp.Write(strCmd);
Thread.Sleep(100);
strCmd = "AT+CMGS=13426023512\r";
sp.Write(strCmd);
Thread.Sleep(100);
strCmd = EncodingUCS2("随便") + "\x1A";
sp.Write(strCmd);
Thread.Sleep(10000); string result = String.Empty;
int size = sp.BytesToRead;
byte[] buffer = new byte[size];
int count = sp.Read(buffer, 0, buffer.Length);
result = Encoding.UTF8.GetString(buffer, 0, count).Replace("\0", ""); sp.Close();int size = sp.BytesToRead;一直是0!
2.串口是否有发送数据出来?
3.检查所接的串口是否是COM1?
sp.Write(strCmd);
1A是什么
试试这下面再加一句
sp.Write("\r\n");
{
lock (_lock)
{
Thread.Sleep(1000);
SerialPort sp = (SerialPort)sender;
if (sp.IsOpen)
{
string result = String.Empty;
byte[] buffer = new byte[128];
int count = sp.Read(buffer, 0, buffer.Length);
result = Encoding.UTF8.GetString(buffer, 0, count);
if (result.ToUpper().IndexOf("+CMTI") != -1)//这是收到短信
{
result = result.Replace("\r", "").Replace("\n", "");
string index = result.Substring(result.IndexOf(",") + 1);
sp.Write("at+cmgr=" + index + "\r");
Thread.Sleep(1000);
int size = sp.BytesToRead;
byte[] b2 = new byte[size];
count = sp.Read(b2, 0, b2.Length);
result = Encoding.UTF8.GetString(b2, 0, count);
string ucs2Text = result.Substring(result.LastIndexOf("\"") + 1);
if ((ucs2Text.IndexOf("ERROR") == -1 && ucs2Text.IndexOf("OK") != -1))
{
string text = ucs2Text.Replace("OK\r\n", "").Replace("\r", "").Replace("\n", "");
Console.Write("收到短信:" + DecodingUCS2(text) + Environment.NewLine);
sp.Write("at+cmgd=" + index + "\r");
Thread.Sleep(100);
}
}
}
}
}接收短信的能收到
{
注销事件
你顶上那一段代码,
}
finally
{
重新注册事件
}