社区
.NET Framework
帖子详情
serailport数据发送接收?
water_zym
2009-08-14 11:29:29
小弟是个新手,请高手帮忙解答下我的疑惑:
如果我使用com1口进行数据的发送,那在com1口中能取到发送的数据、还是com1口发数据com2口接收数据?
这个问题我一直没有搞明白。
...全文
76
6
打赏
收藏
serailport数据发送接收?
小弟是个新手,请高手帮忙解答下我的疑惑: 如果我使用com1口进行数据的发送,那在com1口中能取到发送的数据、还是com1口发数据com2口接收数据? 这个问题我一直没有搞明白。
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
flyerwing
2009-08-14
打赏
举报
回复
哪个应该不用注释的,我也不知道你用的上。
那个是串口的。
hero7750
2009-08-14
打赏
举报
回复
串口有一个发送缓冲区和一个接收缓冲区,你要调试的话可以下载一个虚拟串口vspm
water_zym
2009-08-14
打赏
举报
回复
楼上的,我看了你的程序代码,麻烦能给点注释出来吗?
flyerwing
2009-08-14
打赏
举报
回复
public class SPReadEventArgs:EventArgs
{
private string msg = "";
public string Msg
{
get
{
return msg;
}
set
{
msg = value;
}
}
}
public delegate void SPReadedHandler(object sender,SPReadEventArgs e);
public class SerialPortOfMine
{
public SerialPortOfMine()
{
this.Start();
}
private System.IO.Ports.SerialPort sp = new System.IO.Ports.SerialPort();
public System.IO.Ports.SerialPort GetSp
{
get
{
return sp;
}
set
{
sp = value;
}
}
private System.Threading.Thread thd_sp = null;
public System.Threading.Thread GetThd_sp
{
get
{
return thd_sp;
}
set
{
thd_sp = value;
}
}
private bool state_sp = false;
public bool State_sp
{
get
{
return state_sp;
}
set
{
state_sp = value;
}
}
private string encoding_sp = "gb2312";
public string Encoding_sp
{
get
{
return encoding_sp;
}
set
{
encoding_sp = value;
}
}
private bool state = false;
public bool State
{
get
{
return state;
}
}
public void Start()
{
thd_sp = new System.Threading.Thread(new System.Threading.ThreadStart(this.Initialize));
thd_sp.Start();
}
private void Initialize()
{
state = true;
sp.PortName ="com1";
sp.BaudRate = 9600;
sp.DataBits = 8;
sp.StopBits = System.IO.Ports.StopBits.One;
sp.Parity = System.IO.Ports.Parity.None;
sp.ReadTimeout = 6000;
sp.Encoding = System.Text.Encoding.GetEncoding(this.encoding_sp);
try
{
sp.Open();
this.state_sp = true;
while (state)
{
if (sp.IsOpen == false)
{
state = false;
break;
}
else
{
string str = sp.ReadExisting();
System.Threading.Thread.Sleep(300);
if (str.Length > 0)
{
SPReadEventArgs ea = new SPReadEventArgs();
ea.Msg = str ;
SPReceivedData = new SPReadedHandler(this, ea);
}
else
{
SPReadEventArgs ea = new SPReadEventArgs();
ea.Msg = "没有数据也要促发此事件!";
this.SPReceivedData(this, ea);
//SPReceivedData = new SPReadedHandler(this, ea);
}
}
}
}
catch (System.Exception ept)
{
throw new System.Exception("开启串口出现异常:"+ept.Message);
}
finally
{
sp.Close();
this.state_sp = false;
thd_sp.Abort();
}
}
private void Stop()
{
sp.Close();
state_sp = false;
thd_sp.Abort();
}
public event SPReadedHandler SPReceivedData;
}
SerialPortOfMine sp = new SerialPortOfMine();
sp.SPReceivedData += new SPReadedHandler(this.alert);
private void alert(object sender,SPReadEventArgs e)
{
MessageBox.Show(e.Msg);
}
看这个成不?我菜鸟,没地方试。不知道能不能用。
water_zym
2009-08-14
打赏
举报
回复
楼上发的什么东西?
C# Winform 基于Serial
Port
类实现串口通信,ASCII
数据
收发(打开、关闭、
接收
、
发送
)
实现COM口的(打开、关闭、
接收
、
发送
),以ASCII的格式收发
数据
。
检测serial
port
是否正常
该资源用于测试串口通信是否正常,能够显示传输和
接收
的
数据
数目,测试方法可以将TX、RX短接,因为程序中传输的
数据
是0x5A,如果
接收
的
数据
不是0x5A就会弹出出错messagebox。
Serial
Port
Terminal(c#串口控件使用高级示例)
非常优秀的一个c#串口控件编程示例。
Android 串口通信库源码
Android串口通信库源码,包括原生层的实现和JAVA层的封装,方便大家在Android应用上开发串口通信功能。
C# Serial
Port
HEX
数据
发送
和
接收
Serial
Port
sp1 = new Serial
Port
(); private void Form1_Load(object sender, EventArgs e) //串口设置 { sp1.
Port
Name = "COM11"; //端口号 sp1.BaudRate = 9600; //波特率 sp1.DataBits = ...
.NET Framework
17,748
社区成员
24,327
社区内容
发帖
与我相关
我的任务
.NET Framework
.NET技术 .NET Framework
复制链接
扫一扫
分享
社区描述
.NET技术 .NET Framework
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章