hapi
驱动小牛
驱动小牛
  • 注册日期2002-03-08
  • 最后登录2007-09-25
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1240回复:5

关于串口问题两问。

楼主#
更多 发布于:2002-11-07 20:35
1、系统的串口驱动工作流程是怎么样的(比如串口外设主动发送数据给pc机,驱动如何工作)?
2、如何能够最快取得pc机的一个串口设备发送过来的数据?
谢谢了,给分!
ydyuse
驱动老牛
驱动老牛
  • 注册日期2002-07-25
  • 最后登录2005-03-26
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2002-11-08 08:55
可以在中断服务例程把未请求的输入转存到一个预先定义的缓冲区,以用于以后到达的IRP_ MJ_READ请求。
在中断服务程序中处理UART的中断.
生命驱动,活力无限!
minsoft
驱动小牛
驱动小牛
  • 注册日期2001-07-30
  • 最后登录2007-03-06
  • 粉丝0
  • 关注0
  • 积分8分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2002-11-08 08:57
1、外部数据到达->如果设备被调用CreateFile则FIFO中断->ISR将数据读入缓冲->如果应用发出ReadFile->将缓冲的数据传给应用。
2、方法还有用ReadFile,不过串口有个特殊的结构timeouts,这个结构直接决定ReadFile如何阻塞/返回,会直接影响ReadFile的效率。应该细看它的说明,MSDN中有详细的。还可以用WaitEvent,等待字符到达事件,可以最早知道一个外部字符已到达。
少了e,就少了全部
hapi
驱动小牛
驱动小牛
  • 注册日期2002-03-08
  • 最后登录2007-09-25
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2002-11-08 09:42
To mimsoft:1、串口驱动的系统缓存的大小不定吗? 2、waitcommevent的时间量级能否到ms级?其他驱动能否共享该事件呢? //bow
minsoft
驱动小牛
驱动小牛
  • 注册日期2001-07-30
  • 最后登录2007-03-06
  • 粉丝0
  • 关注0
  • 积分8分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2002-11-08 11:50
串口缓冲大小可以改的,用DeviceIoControl,这个事件指硬件事件不是WIN32的事件对象,不可以共享的。MS级没有问题。
少了e,就少了全部
hapi
驱动小牛
驱动小牛
  • 注册日期2002-03-08
  • 最后登录2007-09-25
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2002-11-08 11:56
多谢了!
游客

返回顶部