用C#不能从串口读出数据或读出的数据是写入的命令?

supercsharp1 2007-07-10 08:52:14
我用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);
}
}
...全文
216 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
sweetch 2008-06-02
  • 打赏
  • 举报
回复
SerialPort的Read方法是从 SerialPort 输入缓冲区中读取。
明白了吧
应该从SerialPort的DataReceived 事件中获取吧
linsoo 2007-10-18
  • 打赏
  • 举报
回复
我只想说...楼主相当的NX....
supercsharp1 2007-07-11
  • 打赏
  • 举报
回复
顶一下!!我从端口读出的数据怎么是我写入的命令啊?谁能回答啊?

110,538

社区成员

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

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

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