解决win10系统下SSCOM打开串口显示无法打开bug
- 格式:docx
- 大小:489.18 KB
- 文档页数:1


串口通信-MSComm控件使用详解2012-11-13 09:35 6988人阅读评论(0) 收藏举报控件编程 Delphi编程(13)MSComm 控件通过串行端口传输和接收数据,为应用程序提供串行通讯功能。
MSComm控件在串口编程时非常方便,程序员不必去花时间去了解较为复杂的API函数,而且在VC、VB、Delphi等语言中均可使用。
Microsoft Communications Control(以下简称MSComm)是Microsoft公司提供的简化Windows下串行通信编程的ActiveX控件,它为应用程序提供了通过串行接口收发数据的简便方法。
具体的来说,它提供了两种处理通信问题的方法:一是事件驱动(Event-driven)方法,一是查询法。
1.MSComm控件两种处理通讯的方式1.1 事件驱动方式事件驱动通讯是处理串行端口交互作用的一种非常有效的方法。
在许多情况下,在事件发生时需要得到通知,例如,在串口接收缓冲区中有字符,或者 Carrier Detect (CD) 或 Request To Send (RTS) 线上一个字符到达或一个变化发生时。
在这些情况下,可以利用 MSComm 控件的 OnComm 事件捕获并处理这些通讯事件。
OnComm 事件还可以检查和处理通讯错误。
所有通讯事件和通讯错误的列表,参阅 CommEvent 属性。
在编程过程中,就可以在OnComm事件处理函数中加入自己的处理代码。
这种方法的优点是程序响应及时,可靠性高。
每个MSComm 控件对应着一个串行端口。
如果应用程序需要访问多个串行端口,必须使用多个 MSComm 控件。
1.2 查询方式查询方式实质上还是事件驱动,但在有些情况下,这种方式显得更为便捷。
在程序的每个关键功能之后,可以通过检查 CommEvent 属性的值来查询事件和错误。
如果应用程序较小,并且是自保持的,这种方法可能是更可取的。
例如,如果写一个简单的电话拨号程序,则没有必要对每接收一个字符都产生事件,因为唯一等待接收的字符是调制解调器的“确定”响应。
遇到SerialPort打不开串口情况遇到SerialPort打不开串⼝情况昨天在现场遇到⼝个情况,电脑上所有的串⼝都打开失败。
当时的情况是这样的,现场有⼝个⼝线扫码枪,由于充电不及时突然断电,现场操作⼝员就⼝⼝个备⼝的替换,突然就发现备⼝的也⼝不了。
经过远程指导,发现还是不⼝。
但是⼝串⼝调试助⼝⼝能打得开串⼝,且能扫码,整个⼝络也是好的。
查看⼝志,发现异常是“由于线程退出或应⼝程序请求,已中⼝IO操作”。
⼝经折腾,现场操作员也搞不定。
只能跑⼝趟了。
到现场后,尝试⼝测试程序打开串⼝,发现报异常“'PortName' cannot be set while the port is open”,所有的串⼝都打不开,都报异常,但是⼝串⼝助⼝打得开。
由于是第⼝次遇到这样的问题,查了好久的资料还是不晓得是什么原因。
尝试过以下⼝个解决办法:1.从另外可⼝的电脑拷贝程序运⼝(不⼝)2.尝试重装NET运⼝环境(不⼝)3.禁⼝和启⼝COM⼝(不⼝)4.卸载COM后,重新扫描添加(不⼝)5.⼝顿操作后,想着实在不⼝就把系统重装⼝遍不就完事了么(还是不⼝)6.觉着电脑有问题...,换⼝台备⼝电脑(不⼝,ku)⼝直到换电脑⼝法之后还是同样的问题,就觉着不对劲了。
回头想很有可能还是扫描枪的问题。
然后去另外的⼝位拿⼝把好的扫描枪,结果就可以。
但是前⼝的两把扫描枪就是不⼝(⼝把没电,⼝把备⼝的)。
然后想着把备⼝的出⼝化重新设置⼝下试试。
诶,结果就好了。
回头想,可能是由于扫描枪是⼝线的,扫码枪和底座是通过蓝⼝连接,底座通过串⼝连接电脑。
扫码枪突然断电后,没有释放底层占⼝的串⼝资源,导致有残留的串⼝。
⼝⼝SerialPort访问的时候还是访问的残留的串⼝,不能打开真正的串⼝。
后⼝请教了⼝个⼝佬,⼝佬说C#⼝SerialPort访问串⼝不靠谱,有⼝率会出现这样的问题,最好的⼝式是通过WinAPI的⼝式直接访问串⼝设备。
读卡器驱程出错的故障排除第1节故障描述 (1)1.1 出错提示 (1)第2节故障原因 (2)2.1 驱动程序没安装好 (2)2.2 误装SCBASE补丁 (2)2.3 其它软件停止智能卡服务 (2)第3节故障排除方法 (2)3.1 win98的排除方法 (2)3.2 win2000的故障排除方法 (3)3.2.1 停止旧的SMART CARD服务 (5)3.2.2 移除SMART CARD服务 (5)3.2.3 重新加载SAMRT SCARD服务 (5)3.2.4 在智能卡服务中设置自动启动并重启服务 (5)3.3 winxp的故障排除方法 (6)第4节误装SCBASE的更好的解决办法 (8)第1节故障描述1.1 出错提示在系统启动时或系统调用CSP服务时出现以“读卡器驱动PCSC错误,请重新安装驱动程序”的操作系统提示。
图1-1 驱动程序出错对话框有时无论如何反安装和重装都无法排除此故障,或在安装过程中出现安装失败请重新安装的出错提示。
第2节故障原因2.1 驱动程序没安装好在安装CSP过程中出意非法操作,安装过程中断。
2.2 误装SCBASE补丁给WIN2000和WINXP操作系统错误安装SCBASE补丁。
2.3 其它软件停止智能卡服务个别防毒软件在运行中监控操作系统的服务运行,并根据一些设定来限制了智能卡的服务动作。
此类情况不属故障,可以根据防毒软件的设置来改动这方面的限制,确实不行的时候可以考虑先禁止此类杀毒软件的运行,再安装PCSC程序。
如NORTON软件。
有些软件的安装或运行也会停止智能卡的运行,个别的计算机管理人员会错误以为智能卡(SMART CARD)这个服务无用,就强行停止此服务。
这种情况只要将此服务的启动方式设为“自动”并重新启动该程序就行,注意区别WIN2000和WINXP的设定,请参照以下解决方案。
第3节故障排除方法故障的原因确定后那就可以根据不同的操作系统来重新启动智能卡的服务就可以排除故障了。
win10系统office打不开怎么办
推荐文章
忘记win7系统管理员密码怎么办热度: Win10系统无法关闭唤醒密码怎么办热度:Win10系统总是锁屏关闭屏幕该怎么办热度:Win10系统下找不到无线网络设置怎么办热度:Win10进不去系统窗口闪退怎么办热度:
很多朋友都升级了win10系统,不过新版本总是有一些小问题出现,有些朋友就遇到了win10版office无法打开的情况,那么win10系统office打不开是怎么回事,下面店铺就给大家带来win10版office 打不开解决方法。
win10系统office打不开解决方法一:
使用Office 2013光盘或者ISO镜像修复安装现有软件。
如果没有光驱和光盘,可用软媒魔方的虚拟光驱(点击下载)加载ISO镜像。
打开光盘(或镜像)后,双击其中的setup.exe安装程序进行修复即可。
双击setup.exe运行Office 2013安装程序
win10系统office打不开解决方法二:
如果没有光盘和镜像,可以在“命令提示符”中输入命令解决,方法如下:
1、在Cortana搜索栏输入CMD,然后在第一个结果点击右键,选择“以管理员身份运行”
2、输入(复制后粘贴)以下命令后回车
icacls “%programfiles%\Microsoft Office 15” /grant *S-1-15-2-1:(OI)(CI)RX
命令运行后,提示处理成功1个文件,失败0个
该命令成功运行完毕后,不必重启,以上问题便可修复。
为什么升级到win10系统之后office打不开这个问题的原因目前小编无法得知,但是只要使用上述小编教的两个方法就可以解决了,遇到上述问题的小伙伴们赶紧操作起来吧!。