- 12
- 0
- 约1.78万字
- 约 37页
- 2017-03-27 发布于四川
- 举报
2-2串口设备数据的接收与处理
学习情景2.2 串口设备数据的接收和处理 2.2.1 学习要点 1.知识点:SerialPort类实例的构造,接收串口数据的方法,接收超时异常处理,HSDZC电能综合测试仪的数据格式,数据帧片段的缓存方法 2.技能点:应用程序项目和SerialPort对象的创建,串口数据接收,接收数据的缓存和数据帧的提取 2.2.2 任务描述 某些串口设备能够定时、主动地向上位机发送数据,处于上位机端的工业控制程序,需要获取串口收到的数据并进行分析和处理。利用.NET Framework 2.0及更高版本提供的SerialPort类可以比较方便地在C#应用程序中实现串口通信功能。从编程的角度看,串口数据的接收就是利用SerialPort对象的Read或ReadByte方法将操作系统存放在串口输入缓冲区中的数据读入到一个字节数组中。 该教学情景通过串口数据接收、接收数据的缓存、数据帧的提取、浮点数解码这几个实施步骤,达到使用SerialPort对象接收单个串口设备(下位机)数据的目的。 学习情景2.2 串口设备数据的接收和处理 2.2.3 相关知识 1 SerialPort类实例的构造 SerialPort类是从.NET Framework 2.0版本开始提供的一个串口控制类,该类包含在System.IO.Ports命名空间中,使用该类的实例可以打开串口,并发送数据。 通过构造函数可以产生SerialPort类的实例,SerialPort类的构造函数在定义时进行了重载,表2.2.1中列出了这些重载构造函数的接口定义: 学习情景2.2 串口设备数据的接收和处理 学习情景2.2 串口设备数据的接收和处理 除了在构造SerialPort类实例的时候可以对端口名称、波特率、奇偶校验位、数据位和停止位进行设置外,构造好SerialPort类实例后,还可以通过PortName、BaudRate、Parity、DataBits、StopBits属性对这些参数进行修改,因此构造SerialPort类实例的程序书写形式比较灵活。 2 串口的打开和关闭 SerialPort类中与串口打开和关闭相关的成员如下: (1)Open方法 Open方法打开新的串口连接,该方法不带参数,接口定义如下: public void Open() (2)Close方法 Close方法关闭已经打开的串口连接,该方法不带参数,接口定义如下: public void Close() 学习情景2.2 串口设备数据的接收和处理 (3)IsOpen属性 通过IsOpen属性可以获知串口当前是否为打开状态,返回一个bool类型的值,该属性只读,接口定义如下: public bool IsOpen { get; } 串口不能重复进行打开和关闭操作,在打开或关闭串口前,都要使用该属性检查串口是否已经处于打开或已经处于关闭状态,以免引发异常。 3 接收串口数据的方法 (1)ReadByte方法 SerialPort类的ReadByte方法可以从串口接收缓冲区中读取一个字节,该方 法的接口定义是: public int ReadByte(); 该方法从串口接收缓冲区中读取一个字节,要和ReadTimeout属性配合使用。当调用ReadByte方法时,如果接收缓冲区中没有数据,则程序被阻塞,直到缓冲区中有数据或到达ReadTimeout属性指定读取数据超时的毫秒数,程序才能继续运行。 学习情景2.2 串口设备数据的接收和处理 ReadByte方法返回一个int类型的值,在实际应用时,要将返回值强制转换为byte类型。 (2)Read方法 Read方法从串口接收缓冲区中读取多个字节,该方法的接口定义是: public int Read(byte[] buffer, int offset, int count); 该方法试图从接收缓冲区中读取count个字节,并写入字节数组buffer中,写入的起始位置是offset,执行后返回实际读取的字节数。例如,现在接收缓冲区中只有6个字节,但count参数值为10,则返回值为6。 在实际应用时,通常先通过SerialPort对象的BytesToRead属性获得接收缓冲区中已有的字节数,并根据该属性值来设置count参数。 和ReadByte方法不同的是,调用Read方法时,不管接收缓冲区中有无数据,都不会对应用程序的当前线程造成阻塞。 学习情景2.2 串口设备数据的接收和处理 4
您可能关注的文档
- 19-草船借箭2011-04-16.ppt
- 1—1—2“关于世界观的学说”演示课件.ppt
- 1—7英国民主政治说课.ppt
- 1—电化学剖析方法—概念-电导.ppt
- 1—1软件测试基本知识点1.ppt
- 1“我们的民族小学”2012.ppt
- 1原电池金属腐蚀与防护.ppt
- 1在期末写评语时老师会祝你来年-.ppt
- 1工程测量的任务.ppt
- 1—2软件测试基本知识点2.ppt
- 小区绿化施工协议书.docx
- 墙面施工协议书.docx
- 1 古诗二首(课件)--2025-2026学年统编版语文二年级下册.pptx
- (2026春新版)部编版八年级道德与法治下册《3.1《公民基本权利》PPT课件.pptx
- (2026春新版)部编版八年级道德与法治下册《4.3《依法履行义务》PPT课件.pptx
- (2026春新版)部编版八年级道德与法治下册《6.2《按劳分配为主体、多种分配方式并存》PPT课件.pptx
- (2026春新版)部编版八年级道德与法治下册《6.1《公有制为主体、多种所有制经济共同发展》PPT课件.pptx
- 初三教学管理交流发言稿.docx
- 小学生课外阅读总结.docx
- 餐饮门店夜经济运营的社会责任报告(夜间贡献)撰写流程试题库及答案.doc
最近下载
- SJ∕T 10460-2016 太阳光伏能源系统图用图形符号.pdf
- 新求精德语强化教程(第4版)初级1课后练习答案(改进版) .pdf VIP
- 北师大版三年级下册数学全册教学设计(配2026年春改版教材).docx
- (2026年)跌倒坠床护理综合指南PPT课件.pptx VIP
- 工程设计应急响应方案(3篇).docx VIP
- 征信简版电子版PDF个人信用报告最新版2024年可编辑带水印模板.pdf VIP
- ntvf调试资料解读.doc VIP
- 电影《色.戒》的叙事伦理.doc VIP
- 上海大学2023-2024学年第1学期《高等数学(上)》期末考试试卷(A卷)附参考答案.pdf
- 佳能EOS1500D基本使用说明书说明书.pdf VIP
原创力文档

文档评论(0)