用C#不能从串口读出数据或读出的数据是写入的命令?
我用vs2005的c#写了一个SerialPort类应用的代码,但是从串行端口读出的数据是我写入的命令,而不是期望的写入“at”,返回“ok”,经理让我先关闭指令回显,即先发送“at E0”命令,然后再发送“at”,但是这样做了以后读数据的时候程序就死在那个地方了,谁能说说怎么回事啊?帮我这个忙!!!
private void ConnectPortButton_Click(object sender, EventArgs e)
{
try
{
sp = new SerialPort("COM1");
sp.ReadTimeout = 10000;
sp.Open();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
private void SendButton_Click(object sender, EventArgs e)
{
try
{
sp.Write(textBox1.Text);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
private void ReceiveButton_Click(object sender, EventArgs e)
{
try
{
string text=null;
char[] buffer = new char[10];
sp.Read(buffer,0,6);---程序执行到这里就停了,卡住了
for (int i = 0; i < buffer.Length; i++)
{
text += buffer[i];
}
textBox2.Text = text;
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
} --------------------编程问答-------------------- 顶一下!!我从端口读出的数据怎么是我写入的命令啊?谁能回答啊? --------------------编程问答-------------------- 我只想说...楼主相当的NX.... --------------------编程问答-------------------- SerialPort的Read方法是从 SerialPort 输入缓冲区中读取。
明白了吧
应该从SerialPort的DataReceived 事件中获取吧
补充:.NET技术 , C#