- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
FD-110A型涡轮分子泵控制器串口通信的实现与应用
本文基于串口通讯的原理,并以DF-110A型涡轮分子泵控制器为模型,介绍了使用CSerialPort类实现串口通讯的步骤,分析和讨论了计算机与单片机进行通讯的协议,且在VC++6.0的基础上运用多线程串口编程工具CSerialPort类实现PC机与单片机之间的串口通讯编程。通过协议改变时,模型做很小的修改就能够很方便的移植到不同的应用系统中,具有很好的扩展性。同时,模型中利用多线程技术设计了一个串口监视的线程,能实时的监视串口状态和数据,因此具有很好的实时性。 在现代工业控制中,串口通信的应用越来越广泛。单片机和PC机之间的串口通信在进行数据交换时经常被使用。在串行通信时,要求通信双方都采用一个标准接口,RS-232C接口是单片机和PC机进行通信最常用的一种接口。单片机与PC机进行串口通信最简单的三线制法,即接收数据针脚(RxD)与发送数据针脚(TxD)相连,彼此交叉,信号地(GND)对应相接,如图1所示。 为了实现单片机和PC机之间的串口通信,采用VC++6.0来实现编程,VC++6.0是一种功能强大的面向对象的Windows编程开发平台。与以 往DOS下串行通信不同,Windows不提倡应用程序直接控制硬件,而是通过Windows系统提供的设备驱动程序来进行数据传递。串口在Win32中是作为文件来处理的,而不是直接对端口进行操作。本文采用多线程串口编程工具CSerialPort类来实现PC机与单片机之间的通讯。 图1 RS-232端接口 1、使用CSerialPort类实现串行通信 CSerialPort类是由RemonSpekreijse提供的串口类,该类支持线连接(非MODEM)的串口编程操作。 CSerialPort类是基于多线程的,其工作流程如下:首先设置好串口参数,再开启串口监测工作线程,串口监测工作线程监测到串口接收到的数据、流控制事件或其他串口事件后;就以消息方式通知主程序,激发消息处理函数来进行数据处理,这是对接收数据而言的;发送数据可直接向串口发送。具体实现如下: 1.1、添加类文件(SerialPort.h和SerialPort.cpp)并定义类对象m_SerialPort,(若要操作多个串口,则要为每个串口均定义一个类对象)。 1.2、串口的初始化 串口的初始化代码一般在OnInitDialog()函数中实现,下面给出了主要代码以及定义了一个布尔变量m_bSerialPortOpened用来标志串口是否打开。 if(m_SerialPort.InitPort(this,nPort,4800,’D’,8,1,EV_RXFLAG|EV_RXCHAR,512)) {m_SerialPort.StartMonitoring();//启动监测辅助线程 m_bSerialPortOpened=TRUE; } else {AfxMessageBox(AB800080解释如下 AB:包头-同步码 80:命令字 00:参数长度,无参数时填零 80:异或效验码 2.3、单片机上传数据 当启动分子泵时,随着分子泵旋转速度的增加,4位LED数码显示数字随之增加,当显示稳定在704HzAB810081 constCStringCLOSEMOTOR=AB800080 constCStringSET430Hz=AB820082 constCStringSET704Hz=AB830083 constCStringWORKSTATUS=AB840084 constCStringBACKDATA=A //当前运动状态 constintStartMotor=0; constintCloseMotor=1; constintSet430HZ=2; constintSet704HZ=3; constintWorkStatus=4; //启动分子泵 CStringstr;//临时变量 str=m_strSendData; m_strSendData=STARTMOTOR; StrtoHex(m_strSendData); CountDisplay(m_strSendData); m_strSendData=str; CurrentControlStatus(0); hellip;hellip;hellip;hellip;hellip; //关闭分子泵 CStringstr;//临时变量 str=m_strSendData; m_strSendData=CLOSEMOTOR; StrtoHex(m_strSendData); CountDis
您可能关注的文档
最近下载
- 初中英语AI辅助阅读理解能力提升策略研究教学研究课题报告.docx
- 人教版部编版统编版六年级上册语文期中复习课件.pptx VIP
- 链家大区商圈经理述职.pptx VIP
- 2025年天津市农机拆解产业园区规划建设可行性研究报告.docx
- 《反对本本主义》课件.ppt VIP
- 北师大三年级下册第七单元《小小鞋店》教学设计含教学反思 .pdf VIP
- 卫生政策学 期末复习小抄.docx VIP
- 房地产成品住房装修技术标准.pdf VIP
- 电力系统北斗短报文业务消息报文传输流程、消息报文编码示例.pdf VIP
- 考研题库 《认知心理学》(第7版)(真题 课后习题 章节题库 模拟试题).docx VIP
有哪些信誉好的足球投注网站
文档评论(0)