串口通信 dsr 问题

saver_gao 2009-02-25 01:33:56

DSR 说明是 data-set ready 线变化

具体有什么变化,我怎么读取这个变化的值啊?请大侠多多指点啊。
...全文
235 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
lovelymelon 2009-02-26
  • 打赏
  • 举报
回复
首先用SetCommMark(hd:Handle;dwevtmask:Dword)设定端口事件
dwevtmask为事件消息掩码位值,如果是0,取消所有消息检测
如果为EV_DSR,检测DSR线路发生变化

然后用WaitCommEvent函数判断SetCommMark设定的事件是否发生
lovelymelon 2009-02-26
  • 打赏
  • 举报
回复
GetCommModemStatus(hd:Hnadle;var modemstate:Cardinal);获取串行端口数字输入线路电压状态

modemstate值
MS-CTS_ON:CTS引脚升至高电位
MS_DSR_ON:DSR引脚升至高电位
MS_RING_ON:RI引脚升至高电位
MS_RLSD_ON:CD引脚升至高电位

该函数可得知线路状态发生改变,而且确定确切的状态
jadeluo 2009-02-26
  • 打赏
  • 举报
回复
如果用的是SPCOMM组件的话, 直接在OnModemStateChange事件中来捕获DSR、CTS、RING、RLSD等信号事件。
saver_gao 2009-02-26
  • 打赏
  • 举报
回复
谢谢,我试试啊
saver_gao 2009-02-25
  • 打赏
  • 举报
回复
搞错了,是dtr 没有会的吗?
帮忙顶一下啊

1,593

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 网络通信/分布式开发
社区管理员
  • 网络通信/分布式开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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