.NET的那些事儿(10)——利用C#.NET进行串口编程

本文介绍了使用C#.NET进行串口编程,以实现与智能水电表项目的通信。通过详细步骤展示了如何创建SerialPort实例、列举串口、打开和关闭串口、接收和发送数据。在接收数据时,使用DataReceived事件处理数据,并通过自定义代理更新UI。项目涉及串口通信、数据解析和存储,对于理解和应用.NET串口编程具有实践指导意义。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

总算最后时间把【智能水电表】的项目啃下来了,总体来说这个项目技术难点不是特别多,主要是一个实现串口通讯的问题,其次就是水电表数据协议的解析问题。目前已经开始在部署阶段了,利用休息时间将内容整理如下:

一、需求分析

1、水电表部署在家居中正常使用(当然水电表不是普通的家庭用表,而是智能家居用表,具有无线通信功能);

2、水电表通过无线通信协议将数据发送到家庭网关中;

3、家庭网关通过串口与PC机相连,通过串口通讯发给PC机接收;

4、PC机通过串口接收到网关传来的数据,进行解析显示,并存储在MySQL数据中(如何配置数据库已经在前面的文章给出,http://blog.youkuaiyun.com/rocket5725/archive/2010/01/05/5137152.aspx);

5、JSP页面读取MySQL中的数据,并显示;

6、烧录机顶盒内核,将JSP页面显示在电视机中。

二、串口编程

本项目的技术难点主要是获取串口数据,并依据现有的通信协议对数据包进行解析并显示。之前有做过类似的串口编程用于WSN,但是现在才发现代码冗余量太大,而且不易于扩展,现在将总体过程整理如下:

2.1 创建SerialPort实例

该步骤可以按照如下方式创建,当然也可以直接在工具箱中拖进SerialPort。

2.2 列举可用的串口名

窗口首次加载时,我们将获取计算机上所有可用的串口名称并将这些名称添加到ComboBox控件里面。双击窗体实现Form1_Load事件处理。

按照以下的方法经常会出现问题(比如不能获得正确的串口名称),后面通过查阅资料得出了以下的一个解决方案,首先需要引用Microsoft.VisualBasic,用以下遍历SerialPortNames,获得所有的串口:

注意还要添加DataReceived 事件:

2.3 打开串口

选择串口名后,用户点击【连接】按钮以打开所选择的端口,代码实现如下:

2.4 断开串口连接

断开串口连接只需要调用一个方法即可。

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值