CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  基础类

一个分时共用串口的问题,高分请教……

楼主load(不是东西)2002-04-02 18:16:39 在 VC/MFC / 基础类 提问

好几个应用程序要分时共用一个串口,我现在的解决办法是:  
          用信号量标记串口是否在使用,得到信号量的程序可以操作串口,没有得到的则等待。每次操作完都关闭串口,释放信号量。这样基本上能解决分时共用的问题。  
   
          但是当关闭串口后的空闲时间别的程序(其它程序)又能使用这个串口,这是不允许的,我要保证串口只能我的几个程序使用,请问如何能实现呢?帮我想个办法!!!  
  问题点数:100、回复次数:11Top

1 楼cris919(lovean)回复于 2002-04-02 18:52:51 得分 5

我想不出好办法  
  upupup  
  Top

2 楼ju_feng(NorthSky)回复于 2002-04-02 19:26:12 得分 15

要想不要别的程序用就要占用串口,可以在一个任务完成后不关闭串口,而是发送  
   
  一个消息通知其他几个程序声明串口可用,其他应用程序向该程序申请使用串口。Top

3 楼load(不是东西)回复于 2002-04-03 10:07:15 得分 0

ju_feng(NorthSky)的思路是可行的,我现在用的就是这种办法,只是每次都把串口关闭后用信号量通知其它程序串口可用,问题是:一个程序用完串口后不关闭,另外一个程序怎么操作串口?  
   
  高手请提供例程,急!!!!!!!!!!!Top

4 楼daiyq(代代)回复于 2002-04-03 10:17:45 得分 40

给你个思路:  
  不就是好几个程序都用串口吗?把操作串口功能单独拿出来作为一个单独的进程,只有这个单独的串口进程可以操作串口、负责串口的打开、关闭、接受和发送数据等,然后你的其它程序需要用串口时可以跟串口进程进行数据通讯,这样你的产口进程就可以独占串口,别人的程序肯定不能用串口。你自己的程序通过进程间通讯或者socket通讯随时可以利用串口了/。  
   
  不好意思,说的可能不清晰,但肯定可行。Top

5 楼load(不是东西)回复于 2002-04-03 13:16:04 得分 0

谢谢daiyq(代代)   及其他  
   
  我现在的困难是:操作串口是在一个动态库里进行的,动态库和程序的接口固定,上面几个程序都不能更改,只能改动态库。Top

6 楼daiyq(代代)回复于 2002-04-03 13:23:57 得分 0

你在动态库里一直占用者串口资源,这样别的程序就不能使用串口了,然后你接收到数据后在动态库里进行排队处理,这样不久行了。Top

7 楼load(不是东西)回复于 2002-04-03 17:52:19 得分 0

WIN32程序都有独立的内存页面,动态库没有并没有固定的进程和内存空间,怎么能一直占有串口呢,占有也只是调用此动态库的某一个程序占有,所有权在程序而不在动态库本身。  
   
  苦恼!!!Top

8 楼load(不是东西)回复于 2002-04-04 14:24:26 得分 0

就没有其它人帮我了吗?Top

9 楼longyii(【深渊上的缥缈】)(☆)回复于 2002-04-04 14:55:44 得分 20

你如果一定要在所有时间独占串口(包括你的进程不运行的时候),有一个笨办法:自己再创建一个进程P,让它独占串口,当你的程序加载dll并需要使用串口时,在dll内部与进程P通信,让它释放串口,当你使用完毕,再让P再次占有。当然如果串口在“释放-分配”的间隙被其他进程抢去,那就...我没法了,不会这么霉吧:)Top

10 楼slf(slf)回复于 2002-04-04 15:24:02 得分 20

用一个单独进程来实现串口的通信,几个程序分别与此进程通信(可以在你的dll中实现)然后再与串口通信,因为此进程一直占有串口资源,所以别的程序无法使用串口。  
  关键是每个程序并不需要真正操作串口,只在一处操作串口,其实tapi就是这种思想实现程序共享。Top

11 楼load(不是东西)回复于 2002-04-04 17:05:27 得分 0

感谢各位的帮助,这次的问题没发弄了,下次做我定按照你们的主意来  
   
  放分了!Top

相关问题

  • 高分求助:串口编程问题
  • 高分求助,关于串口通讯。!!!
  • 高分,再问串口编程
  • 关于mscomm串口编程哦!高分!:)
  • 高分:多线程串口操作?up有分
  • 急!急!!急!!!高分求救!!!串口通信问题...(up有分)
  • 高分求解:200分关于串口的问题
  • 如何在不知串口参数的情况下调试串口,找到通讯参数?高分相送.
  • 高分求助:我笔记本没有串口,在linux下要和一个串口设备连,怎么办?
  • 关于232串口编程的一个问题,高分相赠!

关键词

  • 动态库
  • 信号
  • dll
  • 通信
  • 串口
  • 程序
  • 进程
  • 共用
  • 操作
  • 占有

得分解答快速导航

  • 帖主:load
  • cris919
  • ju_feng
  • daiyq
  • longyii
  • slf

相关链接

  • Visual C++类图书
  • Visual C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo