对RS-232-C串行端口进行访问,摒弃MSCOMM控件,它的功能和效率太低下。Windows操作平台下不提倡应用程序直接控制硬件(包括端口),也不让使用中断(除非打入到Ring0系统级),而是通过Windows操作系统提供的设备驱动程序来进行数据传递。在Windows操作系统下串行口和其他通讯端口一样是作为文件来进行处理的,而不是直接对端口进行操作,对于串行通信,Win 32 提供了相应的文件I/O函数与通信函数,通过了解这些函数的使用,可以编制出符合不同需要的通信程序。
问:对端口进行操作,Win 32 提供了相应的文件I/O函数与通信函数有哪些,谢谢
问:对端口进行操作,Win 32 提供了相应的文件I/O函数与通信函数有哪些,谢谢
解决方案 »
- 求助
- 请问我用openpicture控件打开图片,怎么打开文件的对话框中只能是吧bmp格式的图片,别格式的都看不到呢?
- 听说周爱民周老大要公开武林秘笈......
- *****************IdTcp简单问题,解决了就给分*********************
- 请告诉我delphi7的cdkey??????
- 通过delphi怎样才能获得某一文件的路径/、来者有份/、/、
- 三层中间层(数据服务器)的问题讨论
- Delphi中的Grid控件的问题
- 不好意思!分数有什么用啊?见笑!
- 如何在DBGrid表格控件中为记录添加色带
- 如何获得listbox的scroll事件?
- 寻找免费的客户信息管理软件。
closehandle
getcommstate
setcommmstate
writefile
readfile
clearcommerror
purgecomm
escapecommfunction
setcommmask
waaitcommevent
getcommmodemstatus
要么你用API函数好了,
createFile
closeFile
那我提出的观点正确与否?是否真的像我说的那样:对RS-232-C串行端口进行访问,摒弃MSCOMM控件,它的功能和效率太低下。Windows操作平台下不提倡应用程序直接控制硬件(包括端口),也不让使用中断(除非打入到Ring0系统级),而是通过Windows操作系统提供的设备驱动程序来进行数据传递。在Windows操作系统下串行口和其他通讯端口一样是作为文件来进行处理的,而不是直接对端口进行操作,对于串行通信,Win 32 提供了相应的文件I/O函数与通信函数,通过了解这些函数的使用,可以编制出符合不同需要的通信程序。
CreatFile
打 开 串 行 口
CloseHandle
关 闭 串 行 口
SetupComm
设 置 通 信 缓 冲 区 的 大 小
ReadFile
读 串 口 操 作
WriteFile
写 串 口 操 作
SetCommState
设 置 通 信 参 数
GetCommState
获 取 默 认 通 信 参 数
ClearCommError
清 除 串 口 错 误 并 获 取 当 前 状 态
它可以给你开发的程序提供更好的兼容性与正确性
直接对硬件访问可能会有较大的兼容性问题(即使硬件设计规范有一小点不同)
而使用设备驱动程提供的接口则不会有这样的问题
>>摒弃MSCOMM控件,它的功能和效率太低
我不同意这种说法,造成效率低的是RS232,RS485的工业标准,它规定的通信速率太低造成的,当然,考虑到这个标准已经存在了半个世纪,也就...,只要能提高通信速度,自然也就能提高效率;
至于mscomm,它的功能也许不算多,但就我知道,几乎可以实现在Windows下的所有串口通信的要求,包括中断等,而且,是windows下串口通信最稳定的控件.其实,要真正弄明白会使用mscomm也要花点时间的,它也并不想某些人想象中的那么少功能的!通过其几个属性的调节,也可组合出不少不同的应用!
象在我的系统中,除非实时性要求特别高的(<20ns)的,才用到Api直接编写通信部分,稳定性要求高的,就用mscomm,其它,就用spcomm.spcomm主要使用比较简单,但其实功能也不少,有些bug,要修改起源代码!
SPCOMM我也在用,能不能提供一些经验?不胜感谢!
你可以加我QQ联系:457309