API串口通信实例nhh

上传人:新** 文档编号:500792761 上传时间:2023-07-02 格式:DOCX 页数:70 大小:122.91KB
返回 下载 相关 举报
API串口通信实例nhh_第1页
第1页 / 共70页
API串口通信实例nhh_第2页
第2页 / 共70页
API串口通信实例nhh_第3页
第3页 / 共70页
API串口通信实例nhh_第4页
第4页 / 共70页
API串口通信实例nhh_第5页
第5页 / 共70页
点击查看更多>>
资源描述

《API串口通信实例nhh》由会员分享,可在线阅读,更多相关《API串口通信实例nhh(70页珍藏版)》请在金锄头文库上搜索。

1、第一节 实现现串口通通讯的函函数及串串口编程程简介API函函数不仅仅提供了了打开和和读写通通讯端口口的操作作方法,还还提供了了名目繁繁多的函函数以支支持对串串行通讯讯的各种种操作。常常用函数数及作用用下:函数名 作用用 CreaateFFilee 打开开串口 GetCCommmStaate 检测测串口设设置 SetCCommmStaate 设置置串口 BuillderrCommmDCCB 用字字符串中中的值来来填充设设备控制制块 GetCCommmTimmeouuts 检测测通信超超时设置置 SetCCommmTimmeouuts 设置置通信超超时参数数 SetCCommmMassk 设定定被

2、监控控事件 WaittCommmEvventt 等待待被监控控事件发发生 WaittForrMulltippleOObjeectss 等待待多个被被监测对对象的结结果 WritteFiile 发送送数据 ReaddFille 接收收数据 GetOOverrlapppeddRessultt 返回回最后重重叠(异异步)操操作结果果 PurggeCoomm 清空空串口缓缓冲区,退出所所有相关关操作 CleaarCoommEErroor 更新新串口状状态结构构体,并并清除所所有串口口硬件错错误 ClosseHaandlle 关闭闭串行口口用Winndowws AAPI编编写串口口程序本本身是有有巨大优

3、优点的,因因为控制制能力会会更强,效效率也会会更高。 AAPI编编写串口口,过程程一般是是这样的的: 11、 创创建串口口句柄,用用CreeateeFille; 22、 对对串口的的参数进进行设置置,其中中比较重重要的是是波特率率(BaaudRRatee),数数据宽度度(ByytessBitts),奇奇偶校验验(Paaritty),停停止位(SStoppBitts),当当然,重重要的还还有端口口号(PPortt); 33、 然然后对串串口进行行相应的的读写操操作,这这时候用用到ReeadFFilee和WrriteeFille函数数;4、 读写写结束后后,要关关闭串口口句柄,用用ClooseFF

4、ilee。下面依次次讲述各各个步骤骤的过程程。 第二节 创建建串口句句柄打开开串口从字面上上去理解解,大家家也可以以发现CCreaateFFilee实际上上表明WWinddowss是把串串口当作作一个文文件来处处理的,所所以它也也有文件件那样的的缓冲区区、句柄柄、读写写错误等等,不同同的是,这这个文件件名字只只有固定定的几个个(一般般为四个个),而而且始终终存在(EEXSIITINNG),而而且在调调用CrreatteFiile的的时候请请注意它它的参数数。CrreatteFiile函函数原型型如下: HHANDDLE CreeateeFille(LLPCTTSTRR lppFilleNaam

5、e, DDWORRD ddwDeesirredAAcceess, DDWORRD ddwShhareeModde, LLPSEECURRITYY_ATTTRIIBUTTES lpSSecuurittyAtttriibuttes, DDWORRD ddwCrreattionnDisspossitiion, DDWORRD ddwFllagssAnddAtttribbutees, HHANDDLE hTeempllateeFille );lpFiileNNamee:指向向一个以以NULLL结束束的字符符串,该该串指定定了要创创建、打打开或截截断的文文件、管管道、通通信源、磁磁盘设备备或控制制台的名

6、名字。当当用CrreatteFiile打打开串口口时,这这个参数数可用“CCOM11”指定定串口11,用“CCOM22”指定定串口22,依此此类推。dwDeesirreAcccesss: 指定对对文件访访问的类类型,该该参数可可以为GGENEERICC_REEAD(指定对对该文件件的读访访问权)或GEENERRIC_WRIITE(指指定该文文件的写写访问权权)两个个值之一一或同时时为为这这两个值值。用EENERRIC_REAAD|GGENEERICC_WRRITEE则指定定可对串串口进行行读写;dwShhareeModde:指指定此文文件可以以怎样被被共享。因因为串行行口不支支持任何何共享模模

7、式,所所以dwwShaareMModee必须设设为;lpSeecurrityyAtttribbutees定义义安全属属性,一一般不用用,可设设为NUULL。WWin 9x下下该参数数被忽略略;dwCrreattionnDisstriibuttionn定义文文件创建建方式, 对串口口必须设设为OPPEN_EXIISTIING,表表示打开开已经存存在的文文件;dwFllagssAnddAtttribbutees为该该文件指指定定义义文件属属性和标标志,这这个程序序中设为为FILLE_FFLAGG_OVVERLLAPPPED,表表示异步步通信方方式; hhTemmplaateFFilee指向一一个模

8、板板文件的的句柄,串串口无模模板可言言,设为为NULLL。在在 Wiindoows 9x下下该参数数必须为为NULLL。串口被成成功打开开时,返返回其句句柄,否否则返回回INVVALIID_HHANDDLE_vallue(0XFFFFFFFFFFF)。上面说到到了异步步,那什什么是异异步呢?异步是是相对同同步这个个概念而而言的。异异步,就就是说,在进行串串口读写写操作时时,不用用等到II/O操操作完成成后函数数才返回回,也就就是说,异异步可以以更快得得响应用户户操作;同步,相相反,响响应的II/O操操作必须须完成后后函数才才返回,否否则阻塞塞线程。对对于一些很简简单的通通讯程序序来说,可可以选

9、择择同步,这这样可以以省去很很多错误误检查,但但是对于于复杂一一点的应应用程序序,异步步是最佳佳选择。实例1:/* eexammplee1.ccpp */* llishhaoaan 220099-066-299 */* */#inccludde #inccludde #inccludde booll oppenpportt(chhar *poortnnamee)/打开串串口HANDDLE hCoomm;hCommm = CrreatteFiile(porrtnaame, /串口号号 GGENEERICC_REEAD | GGENEERICC_WRRITEE, /允许许读写 00, /通讯讯设备

10、必必须以独独占方式式打开 00, /无安安全属性性 OOPENN_EXXISTTINGG, /通讯讯设备已已存在 FFILEE_FLLAG_OVEERLAAPPEED, /异异步I/O 00); /通通讯设备备不能用用模板打打开if (hCoomm = INVVALIID_HHANDDLE_VALLUE)ClosseHaandlle(hhCommm);retuurn FALLSE;elseeretuurn truue; voidd mmainn()booll oppen;openn=oppenpportt(ccom22);if(oopenn)prinntf(oppen commporrt ss

11、ucccesss);systtem(paausee) ;/* proograam eend*/实例2:/* eexammplee2.ccpp */* llishhaoaan 220099-066-299 */* */#inccludde #inccludde #inccludde booll oppenpportt(chhar *poortnnamee)/打开串串口HANDDLE hCoomm;hCommm = CrreatteFiile(porrtnaame, /串口号号 GGENEERICC_REEAD | GGENEERICC_WRRITEE, /允许许读写 00, /通讯讯设备必必须以独独占方式式打开 00, /无安安全属性性 OOPENN_EXXISTTINGG, /通讯讯设备已已存在

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 营销创新

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号