网站首页 > 博客文章 正文
在前文C#程序与单片机通信时,如何自动初始化串口(1)?中介绍了如何注册程序,使用程序能够监听USB插、拔事件。当程序获得这些事件之后,如何确定事件源就是我们关注的那个USB设备呢?
每个USB设备都有他们的生产厂家代码、设备代码等信息,我们可以利用此信息来确定该设备。比如,有一个设备代码如下的USB设备(USB虚拟串口),此值可以从Windows设备管理>USB驱动信息中获取。
Device USB\VID_0483&PID_5740\123456
//定义一个标识字符串 const string VID_STR = @"USB\VID_0483&PID_5740";
在前文的Usb_DeviceAdded()函数中,要从系统中获得USB设备信息,并打开相应的串口。C#中要用到System.Management(类似系统设备管理功能),采用命令的方式实现,如下
//搜索所有插拔设备 ManagementObjectSearcher searcher = new ManagementObjectSearcher("Select * From Win32_PnPEntity"); //逐个访问 foreach (ManagementObject mo in searcher.Get()) { //比较是否正确 if (0== string.Compare(VID_STR, 0, mo["PNPDeviceID"].ToString(), 0, VID_LEN)) { try { //找到对应设备 m_Port = new SerialPort(mo["DeviceID"].ToString(), 115200, Parity.None, 8, StopBits.One) { //缓冲区大小 WriteBufferSize = 1024, ReadBufferSize = 1024, //超时设定 ReadTimeout = 2000//ms }; //打开串口 m_Port.Open(); IsOpen = m_Port.IsOpen; } catch { m_Port.Dispose(); //如果失败则提示 throw new ArgumentNullException("Port Open Failed", nameof(m_Port)); } } }
同样在检测到USB拔出时,可以在前文的Usb_DeviceRemoved()函数中同样判断该是否存在,如果存在,则不作处理(是其它USB设备拔出),否则,要关闭串口。
想全面了解此话题,请参考前三篇,
猜你喜欢
- 2024-10-31 英雄联盟手游错误代码100008什么原因?LOL手游错误代码解决办法
- 2024-10-31 玩转网络自动化之ntc_templates模块
- 2024-10-31 电机驱动_上位机_ModbusRTU通讯(伺服上位机)
- 2024-10-31 真实的线上故障处理案例(在线故障检测时应注意什么)
- 2024-10-31 问题反馈:为什么Cydia加载出现那么多红色错误?
- 2024-10-31 Norland诺兰德连接超时连接报错?一招解决连接问题
- 2024-10-31 处理超时订单(超时未付款)的解决方案
- 2024-10-31 第一后裔运行超时运行报错怎么办?一招解决运行问题
- 2024-10-31 基于 PTS 压测轻松玩转问题诊断(tps压测 指什么)
- 2024-10-31 DNS故障的几种常见原因及解决方法
你 发表评论:
欢迎- 07-07Xiaomi Enters SUV Market with YU7 Launch, Targeting Tesla with Bold Pricing and High-Tech Features
- 07-07Black Sesame Maps Expansion Into Robotics With New Edge AI Strategy
- 07-07Wuhan's 'Black Tech' Powers China's Cross-Border Push with Niche Electronics and Scientific Firepower
- 07-07Maven 干货 全篇共:28232 字。预计阅读时间:110 分钟。建议收藏!
- 07-07IT运维必会的30个工具(it运维工具软件)
- 07-07开源项目有你需要的吗?(开源项目什么意思)
- 07-07自动化测试早就跑起来了,为什么测试管理还像在走路?
- 07-07Cursor 最强竞争对手来了,专治复杂大项目,免费一个月
- 最近发表
-
- Xiaomi Enters SUV Market with YU7 Launch, Targeting Tesla with Bold Pricing and High-Tech Features
- Black Sesame Maps Expansion Into Robotics With New Edge AI Strategy
- Wuhan's 'Black Tech' Powers China's Cross-Border Push with Niche Electronics and Scientific Firepower
- Maven 干货 全篇共:28232 字。预计阅读时间:110 分钟。建议收藏!
- IT运维必会的30个工具(it运维工具软件)
- 开源项目有你需要的吗?(开源项目什么意思)
- 自动化测试早就跑起来了,为什么测试管理还像在走路?
- Cursor 最强竞争对手来了,专治复杂大项目,免费一个月
- Cursor 太贵?这套「Cline+OpenRouter+Deepseek+Trae」组合拳更香
- 为什么没人真的用好RAG,坑都在哪里? 谈谈RAG技术架构的演进方向
- 标签列表
-
- ifneq (61)
- 字符串长度在线 (61)
- messagesource (56)
- aspose.pdf破解版 (56)
- promise.race (63)
- 2019cad序列号和密钥激活码 (62)
- window.performance (66)
- qt删除文件夹 (72)
- mysqlcaching_sha2_password (64)
- ubuntu升级gcc (58)
- nacos启动失败 (64)
- ssh-add (70)
- jwt漏洞 (58)
- macos14下载 (58)
- yarnnode (62)
- abstractqueuedsynchronizer (64)
- source~/.bashrc没有那个文件或目录 (65)
- springboot整合activiti工作流 (70)
- jmeter插件下载 (61)
- 抓包分析 (60)
- idea创建mavenweb项目 (65)
- vue回到顶部 (57)
- qcombobox样式表 (68)
- tomcatundertow (58)
- pastemac (61)
本文暂时没有评论,来添加一个吧(●'◡'●)