如何读Com口

redice 2000-05-06 02:21:00
不知该如何在Delphi下实现读取Com*口。
最近要做一个硬件的东东。
...全文
145 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
ran 2000-05-23
  • 打赏
  • 举报
回复
首先,初始化串口
function T_DR.IniComm(commstring: string): integer;
var
hdcb: tdcb;
myhandle: integer;
begin
myhandle:=createFile(pchar(uppercase(commstring)),(GENERIC_READ or GENERIC_WRITE),0,nil,OPEN_EXISTING,FILE_FLAG_OVERLAPPED,0);
if myhandle<>INVALID_HANDLE_VALUE then
begin
getcommstate(myhandle,hdcb);
hdcb.BaudRate:=CBR_9600;
hdcb.Parity:=NOPARITY;
hdcb.StopBits:=ONESTOPBIT;
setcommstate(myhandle,hdcb); //参数随意
purgecomm(myhandle,purge_txabort);
purgecomm(myhandle,purge_rxabort);
end;
result:=myhandle;
end;
然后...用 READFILE(...,MYHANDLE,...)即可.
zyb 2000-05-23
  • 打赏
  • 举报
回复
找个串口控件装上,调用控件的方法即可实现!
好的串口控件到处都是,如MSCOMM32、SPCOMM等等。
HappyCola 2000-05-23
  • 打赏
  • 举报
回复
1.用CreateFile( )打开通信串口;
2.然后用BuildCommDCB( )和SetCommState( )函数设置串口通信参数
3.用GetCommState()得到当前的DCB参数值,SetCommTimeouts()和GetCommTomeouts() 设置读写的超时参数;SetupComm()设置读写缓冲区。
4.CreateEvent()返回一事件句柄
5.SetCommMask()定义用户程序可监视的通信事件
  以上设置完成后,调用函数WaitCommEvent()监视通信事件,
  当有通信事件产生时,就用ReadFile()和WriteFile()直接对串口缓冲区进行读写操作。通信结束后,调用函数CloseHandle()将串口关闭。

在以下网页有详细介绍:
"http://www.yesky.com/33554432/34603008/34668544/34672640/34672768/35999.htm"

1978322 2000-05-22
  • 打赏
  • 举报
回复
你可以安装mscomm这个ocx元件来读com口,或用汇编语言编一段函数插进去也可以,好想用读文件的方式也可以。

5,379

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧