搜索
bottom↓
回复: 16

C#怎么加入串口接收事件(EVENT)?

[复制链接]

出20入34汤圆

发表于 2016-9-28 14:59:19 | 显示全部楼层 |阅读模式
接触C#大概一周多了,感觉写的代码量比MFC少了很多,现在用C#写一个串口的调试工具,但是在加入串口接收数据的事件时候有点问题
就是应该怎么加入串口接收数据的事件响应呢?网上查到的资料很多都是直接贴了一串代码,没有什么作用。有图形化的操作方法吗?
我用的是VS2010的环境,点击右边的小闪电图标会出来一系列的事件列表,但是没有找到口的接收事件。

阿莫论坛20周年了!感谢大家的支持与爱护!!

曾经有一段真挚的爱情摆在我的面前,我没有珍惜,现在想起来,还好我没有珍惜……

出0入211汤圆

发表于 2016-9-28 15:09:20 | 显示全部楼层

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出20入34汤圆

 楼主| 发表于 2016-9-28 17:23:36 | 显示全部楼层

谢谢回答,不过我这儿怎么没有出现你那儿的“system.IO.Ports.SerialPort”呢,是我的命名空间有问题吗?我的命名空间是:using System.IO.Ports;

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2016-9-28 17:24:04 | 显示全部楼层
二楼正解

出20入34汤圆

 楼主| 发表于 2016-9-28 17:28:55 | 显示全部楼层

我这儿怎么没出现二楼的消息属性页面呢?

出0入0汤圆

发表于 2016-9-28 17:54:33 | 显示全部楼层
yjamdfhqjs 发表于 2016-9-28 17:28
我这儿怎么没出现二楼的消息属性页面呢?

点右边闪电图标

出0入0汤圆

发表于 2016-9-28 18:13:14 | 显示全部楼层
serialPort1.DataReceived += new SerialDataReceivedEventHandler(port_DataRx);
看杜洋的视频

出0入0汤圆

发表于 2016-9-28 18:13:46 | 显示全部楼层
        private void port_DataRx(Object sender, SerialDataReceivedEventArgs e)
        {
            //这样子才不会丢包
            while (serialPort1.BytesToRead > 0)
            {
                TempChar = (byte)serialPort1.ReadByte();
}
}

出870入263汤圆

发表于 2016-9-28 18:15:21 | 显示全部楼层
人家是用SerialPort作为窗口组件才会出现在属性页里。楼主你肯定是在代码里自己new出来的SerialPort吧?

出870入263汤圆

发表于 2016-9-28 18:21:07 | 显示全部楼层
框架自带的串口类在数据接收超时方面不够灵活,导致基于报文的串口协议有些时候会有粘包问题。这样也就基本没有了实时性。
要灵活是用串口,就得调用Win32 API,比如:SetCommTimeouts,SetCommState,WaitCommEvent等。

出20入34汤圆

 楼主| 发表于 2016-9-28 20:44:18 | 显示全部楼层
armstrong 发表于 2016-9-28 18:15
人家是用SerialPort作为窗口组件才会出现在属性页里。楼主你肯定是在代码里自己new出来的SerialPort吧? ...

高手,这个是怎么操作的呢,怎么把SerialPort作为窗口组件呢

出870入263汤圆

发表于 2016-9-28 21:43:52 | 显示全部楼层
yjamdfhqjs 发表于 2016-9-28 20:44
高手,这个是怎么操作的呢,怎么把SerialPort作为窗口组件呢

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2016-9-28 21:44:34 | 显示全部楼层
yjamdfhqjs 发表于 2016-9-28 20:44
高手,这个是怎么操作的呢,怎么把SerialPort作为窗口组件呢

直接拖一个串口控件到窗口里面去就好了

出20入34汤圆

 楼主| 发表于 2016-9-28 22:02:28 | 显示全部楼层

谢谢了 网上找到的资料都没说到这个坑

出0入0汤圆

发表于 2016-9-28 22:19:13 | 显示全部楼层
视频  我以前写过一个

出0入0汤圆

发表于 2016-9-28 23:29:27 | 显示全部楼层
从工具箱把组件拖到窗口比较方便。
只要添加到窗口后,点击对应控件,然后在右边点击小闪电图标,就可以看到该组件的事件列表,在对应事件上双击即可添加对应事件。

不要用代码来添加,否则又要写事件、委托什么的怪麻烦。刚接触C#的时候先搞点简单的入手,以免影响学习的积极性。

出20入34汤圆

 楼主| 发表于 2016-9-28 23:41:41 | 显示全部楼层
dalarang 发表于 2016-9-28 23:29
从工具箱把组件拖到窗口比较方便。
只要添加到窗口后,点击对应控件,然后在右边点击小闪电图标,就可以看 ...

OK 谢谢 已实现功能
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-6-7 03:31

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表