版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于WinForm医用仪器软件设计MedicalInstrumentSoftwareDesignQuickStartTutorial2022讲师xxx06串口通信小工具设计实验章节目录Tableofcontents串口简介动态链接库
SerialPort控件介绍010203委托的另一种用法04虚拟串口05设计框图06串口通信小工具设计实验Serialcommunicationgadgetdesignexperiment实验内容学习串口通信相关知识点,了解串口通信过程,然后通过WinForm完成串口通信小工具的界面布局,设计出一个可实现串口通信的应用程序。实验原理1.串口简介串口:串行接口的简称,通常指COM接口。串口将数据一位一位地顺序传送,其特点是通信线路简单,成本低。串口通信的基本流程:2.动态链接库动态链接库(DynamicLinkLibrary,DLL)是一种实现共享函数库的方式。在C#中引用动态链接库,需要引入”usingsystem.Runtime.InteropServices;”命名空间,下面以引入INI文件写操作函数为例,动态链接库的用法如下://引入动态链接库,为了保存串口的配置信息[DllImport("kernel32")]//声明INI文件写操作函数privatestaticexternlongWritePrivateProfileString(stringsection,stringkey,stringval,stringfilepath);Windows提供的DLL文件中包含了允许基于Windows的程序在Windows环境下操作的许多函数,通常存放于计算机”C:\Windows\System32“目录下。本实验用到了Windows程序中常用的文件读写函数,该函数位于kernel32.dll中,属于低级内核函数。3.SerialPort控件介绍SerialPort控件是.NET提供的对串口通信的支持功能,在命名空间System.IO.Ports下,其中最常用的是SerialPort类。通过创建一个SerialPort对象,就可以在程序中控制串口通信的全过程。SerialPort控件的常用属性与方法:串口名、波特率、奇偶校验、数据位、停止位SerialPort控件的DataReceived事件:当有数据进入时,该事件在优先级比较低的辅助线程中被触发,这种触发由操作系统决定,无法保证每字节数据到达时该事件都被触发,通常在DataReceived事件中接收数据时,会对数据进行缓存。打开串口方法Open()、关闭串口方法Close()、读数据方法Read()、写数据方法Write()4.委托的另一种用法对于C#来说,默认不能在其它线程中访问非本线程创建的控件。主界面在主线程中实现,串口接收数据的功能在串口接收事件子线程中实现,而我们需要将串口接收到的数据更新到主界面。这就涉及到跨线程调用的问题,需要使用到委托的另一种用法:在serialPort串口接收数据的过程中,利用this.invoke解决多线程中跨线程调用主界面的问题。具体用法示例:首先先定义委托类型、声明委托变量、实例化委托对象:delegatevoidUpdateTextEventHandler(stringtext);UpdateTextEventHandlerupdateTextupdateText=newUpdateTextEventHandler(updateTextBox);其中,委托方法为updateTextBox(stringtext):privatevoidupdateTextBox(stringtext){//将串口接收到的数据显示在主界面的接收数据区内textBoxRecv.Text=text;}在子线程中通过this.invoke执行指定的委托://将接收到的数据传送出去,因为要访问UI资源,所以需要使用invoke方式同步至UI主线程this.Invoke(updateText,newstring[]{mUARTRecvData});this.invoke如何解决这个问题呢?通常是将工作线程中设计界面更新的代码封装成一个方法,使用invoke调用。封装的方法应该尽量简单,减轻主线程的负担。5.虚拟串口虚拟串口是计算机上用软件虚拟出来的串口,并不是物理上有形的串口。通常在操作系统中安装一个驱动软件,让操作系统认为有一个物理上的串口能够操作和通信,但这个串口在物理上并不存在。资料包中的虚拟串口软件可以创建一对虚拟串口,SSCOM串口工具可以对串口进行设置与调试。本实验串口数据的收发是在配对的串口之间进行的,在串口通信小工具和SSCOM串口工具中分别选中一个串口号,将串口参数调整一致,便可互相传递数据。6.设计框图串口通信小工具设计框图:界面介绍控件:comboBox事件:Click()Items属性:添加下拉列表控件:button事件:Click()控件:TextBoxScrollBars属性:Vertical(设为滚动)控件:SerialPort事件:DataReceived()串口通信小工具设计实验Serialcommunicationgadgetdesignexperiment代码分析串口通信小工具设计实验Serialcommunicationgadgetdesignexperiment代码分析串口通信小工具设计实验Serialcommunicationgadgetdesignexperiment代码分析串口通信小工具设计实验Serialcommunicationgadgetdesignexperiment代码分析串口通信小工具设计实验Serialcommunicationgadgetdesignexperiment本章任务Tasks基于本章实验进行修改,在串口通信小工具的“发送”按钮后面添加一个“连续发送”按钮控件,单击该按钮时实现连续发送数据的功能,同时将“连续发送”按钮文本改为“关闭发送”;单击“关闭发送”按钮时实现关闭发送数据的功能,同时将“关闭发送”按钮文本改为“连续发送”;
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 媒介管理学概论第二章媒介产业与媒介组织
- 2025北京五十五中高二(上)期中语文试题及答案
- 互联网公司实习报告
- 商务管理就业方向指南
- 策划行业成长指南
- 就业指导部工作设想
- 2026九年级上名著导读艾青诗选
- 医院消杀组工作制度
- 医院财务处内部控制制度
- 单招机构班主任考核制度
- 初中八年级物理下册“功率:做功的快慢”核心素养教案
- 2025-2030中国宫腔镜行业市场发展趋势与前景展望战略研究报告
- 2026苏教版六年级下册数学期中测试卷(附答题卡和答案)
- 2026无锡市中考历史考前提分模拟卷含答案
- 重大网络安全攻防演练防守解决方案
- 2026年天津市和平区中考一模数学试卷和答案
- 2026年爆破工程技术人员试题及参考答案详解【综合卷】
- 桂林外卖行业现状分析报告
- 安全管理人员考勤制度
- 人工智能与科学之美智慧树知到课后章节答案2023年下湘潭大学
- 史上最全船舶演习记录规范(中英文对照)
评论
0/150
提交评论