急!串口开发,SerialPort接收不到数据?

y2012 2016-06-18 08:35:31
我这几天在做串口通讯的开发,使用串口助手能够接收到串口发送过来的数据,但是用SerialPort就接收不到数据。定时读取获得的是空字符串,使用DataReceived事件则不能触发。
程序如下:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO.Ports;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace TestBalance
{
public partial class Form1 : Form
{
SerialPort sp;
public Form1()
{
InitializeComponent();
sp = new SerialPort("COM21", 9600, Parity.None, 8, StopBits.One);
sp.Open();
sp.ReceivedBytesThreshold = 1;
sp.RtsEnable = true;
sp.DtrEnable = true;
sp.DataReceived+=sp_DataReceived;
sp.Write("01 03 100b 0002 b109");
Thread.Sleep(200);
//string message= sp.ReadExisting();
//MessageBox.Show(message);
}

private void sp_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
string message = sp.ReadLine();
MessageBox.Show(message);
}
}
}

...全文
541 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
llllcccl 2017-09-01
  • 打赏
  • 举报
回复
Private Sub SerialPort_DataReceived(ByVal sender As Object, ByVal e As System.IO.Ports.SerialDataReceivedEventArgs) Handles SerialPort1.DataReceived 接收语句后面差Handles SerialPort1.DataReceived
Poopaye 2016-06-19
  • 打赏
  • 举报
回复
先去下个串口监控的软件:accessport、portmon之类的,调试看看助手和c#发送的数据有什么差别
JxCoder 2016-06-19
  • 打赏
  • 举报
回复
看下 NewLine属性。默认的是'\r' 如果你发的数据没有‘\r’ 接收也是没反应的
y2012 2016-06-19
  • 打赏
  • 举报
回复
谢谢楼上的哥们
y2012 2016-06-18
  • 打赏
  • 举报
回复
引用 3 楼 duanzi_peng 的回复:
无非是硬件或者参数设置不对或者发送命令 格式不对 ,导致没有返回数据,在sp_DataReceived中写一个while循环来测试一下。
在串口助手中设置的参数和我程序中是一样的,在串口助手中能够返回数据,但在程序中就没有返回。
lv_fu 2016-06-18
  • 打赏
  • 举报
回复
建议有条件上逻辑分析仪 确定你发送的格式是正确的?
exception92 2016-06-18
  • 打赏
  • 举报
回复
无非是硬件或者参数设置不对或者发送命令 格式不对 ,导致没有返回数据,在sp_DataReceived中写一个while循环来测试一下。
y2012 2016-06-18
  • 打赏
  • 举报
回复
引用 1 楼 BEYONDMA 的回复:
这个先看硬件,包括线和口有没有问题再说。
我用串口助手调试是没有问题的,应该不是硬件的问题。
beyondma 2016-06-18
  • 打赏
  • 举报
回复
这个先看硬件,包括线和口有没有问题再说。

110,537

社区成员

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

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

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