社区
C#
帖子详情
C#打开串口问题
jason176374
2010-11-04 02:56:18
使用CreateFile打开串口。
系统启动,第一次打开,正常。
程序关闭,在打开程序,串口打开失败,使用
GetLastError查看,Errorcode是12,访问码无效。
大家帮我分析分析,谢谢。
注:程序结构已经如此,不要再说使用C#控件代替API的建议。
...全文
649
8
打赏
收藏
C#打开串口问题
使用CreateFile打开串口。 系统启动,第一次打开,正常。 程序关闭,在打开程序,串口打开失败,使用 GetLastError查看,Errorcode是12,访问码无效。 大家帮我分析分析,谢谢。 注:程序结构已经如此,不要再说使用C#控件代替API的建议。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
niuniu5202011
2011-08-12
打赏
举报
回复
不理解 0.0
jason176374
2010-11-04
打赏
举报
回复
追加了一下LOG,可能发现问题了。
现在我的程序结构是这样的。
应用程序 A 界面显示
类库 B, 操作串口
我在B的析构函数中调用了CloseHandle。
但是LOG发现,在A程序关闭的时候,没有调用该析构函数。
因此没有CloseHandle
jason176374
2010-11-04
打赏
举报
回复
[Quote=引用 4 楼 wuyazhe 的回复:]
#define ERROR_INVALID_ACCESS 12L
没看到代码,猜不出来问题。
[/Quote]
// 打开串口|
hComm = CreateFile(Port, GENERIC_READ | GENERIC_WRITE, 0, 0, OPEN_EXISTING, 0, 0);
if (hComm == INVALID_HANDLE_VALUE)
{
iLastError = GetLastError();// 12L
}
access mask 应该是说GENERIC_READ | GENERIC_WRITE
jason176374
2010-11-04
打赏
举报
回复
[Quote=引用 3 楼 chenxicheng 的回复:]
程序启动先判断串口是否打开
如果打开就先关闭
那样比较好点
然后再CreateFile打开串口。
[/Quote]
求方法。
如何判断串口是否打开?
如果其他程序占用,也能关闭?
恐怕不行吧
兔子-顾问
2010-11-04
打赏
举报
回复
#define ERROR_INVALID_ACCESS 12L
没看到代码,猜不出来问题。
chenxicheng
2010-11-04
打赏
举报
回复
程序启动先判断串口是否打开
如果打开就先关闭
那样比较好点
然后再CreateFile打开串口。
jason176374
2010-11-04
打赏
举报
回复
调用过CloseHandle了。
TITI_Yu
2010-11-04
打赏
举报
回复
打开后关闭了吗?好像如果没有关闭想再次打开的时候会出现问题的。
c#
打开
串口
和关闭
串口
时增加类似 lock (xxxx.lock_obj1)的代码来防止冲突而引发
串口
不通讯
问题
,
"和标准功率源间的通讯,请检查线路并重新
打开
本软件!", 0)) //最后1个参数0:防止弹窗阻塞而一直通讯失败,按钮按下已经有检测是否
串口
open的代码了。//Form1.refwin1.libcls.MessageBoxw("标准源通讯
打开
失败!lock (biaozhunyuan_comm_obj.lock_obj1)//解决冲突时
串口
再也收不到数据的
问题
!lock (biaozhunyuan_comm_obj.lock_obj1)//解决冲突时
串口
再也收不到数据的
问题
!
[编程技巧]
C#
中使用
串口
SerialPort编程
打开
串口
后,无法与硬件建立连接的
问题
。
问题
:
C#
使用SerialPort
打开
串口
,与
串口
调试调试工具连接正常,且与大多数硬件连接都正常,但是在与Sysmex(希森美康) CS2000i系列仪器通讯时,接口在未接受到任何数据时,对方就提示offline传输失败。 使用瑞美的接收工具正常,但是使用几个
串口
调试工具,和本人开发的接口均出现无法连接的
问题
。经排查为RtsEnable、DtrEnable两个属性未设置,仪器与程序握手失败。
C#
与
串口
通信:解决常见
问题
的调试技巧与实用建议
摘要:
串口
通信在嵌入式系统和工业自动化中应用广泛,
C#
的System.IO.Ports.SerialPort类提供了开发支持。本文探讨了
串口
通信的基本概念(波特率、数据位等),并针对常见
问题
如端口占用、数据丢失、线程阻塞等提供了调试技巧,包括异步操作、波特率匹配、缓冲区优化等,帮助开发者提升通信效率和稳定性。通过合理配置参数和优化传输方式,可有效解决
串口
通信中的典型
问题
。
C#
串口
编程实例解析:从基础到实战,轻松实现
串口
通信
本文介绍了
C#
实现
串口
通信的方法。首先讲解了
串口
通信基础概念,包括波特率、数据位、停止位等关键参数。然后详细说明如何通过
C#
的SerialPort类进行
串口
设置、
打开
、数据发送和接收等操作,并给出了完整示例代码。最后分析了
串口
被占用、数据不稳定等常见
问题
的解决方法,如调整参数、设置超时时间和使用缓冲区等。文章提供了从基础到实战的
串口
编程指南,帮助开发者在工业自动化、嵌入式系统等场景中实现稳定可靠的
串口
通信。
C#
串口
通信,
串口
的发送与接收,获取本机
串口
SerialPort;
串口
类 1.引用命名空间:using System.IO.Ports; 2.创建对象:SerialPort com = new SerialPort(); 3.给
串口
端口与波特率属性赋值:com.PortName = "COM4"; com.BaudRate = 9600; 4.
打开
串口
:com.Open(...
C#
111,129
社区成员
642,535
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章