IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> C#串口判定USB是否拔出问题检测 -> 正文阅读

[嵌入式]C#串口判定USB是否拔出问题检测

主要参考如下:下面这里也给出了串口助手开发的相关过程和USB热拔插检测相关。
https://blog.csdn.net/weixin_44547715/article/details/105958317?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522164854319116780357276896%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=164854319116780357276896&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allfirst_rank_ecpm_v1~rank_v31_ecpm-2-105958317.142v5pc_search_result_control_group,143v6control&utm_term=C%23%E4%B8%B2%E5%8F%A3%E6%8B%94%E5%87%BA%E5%90%8E%E6%8A%A5%E9%94%99&spm=1018.2226.3001.4187

测验代码部分如下:

protected override void WndProc(ref Message m)
        {
             String serialPortName;
             serialPortName = cbx_commNo.Text;
            if (m.Msg == 0x0219){//设备改变
                if (m.WParam.ToInt32() == 0x8004){//usb串口拔出
                string[] ports = System.IO.Ports.SerialPort.GetPortNames();//重新获取串口
                cbx_commNo.Items.Clear();//清除“串口号”里面的数据
                cbx_commNo.Items.AddRange(ports);//给“串口号”添加数据
                if (btn_comm.Text == "关闭串口")//检测连接串口那个button
                {//用户打开过串口
                if (!serialPort1.IsOpen){//用户打开的串口被关闭:说明热插拔是用户打开的串口
                    btn_comm.Text = "打开串口";
                serialPort1.Dispose();//释放掉原先的串口资源
                cbx_commNo.SelectedIndex = cbx_commNo.Items.Count > 0 ? 0 : -1;//显示获取的第一个串口号
                lbl_commStasData.Text = "已断开";//这里是串口连接状态显示栏
                lbl_commStasData.ForeColor = Color.Red;//这里将文字注红
                }
                else{
                cbx_commNo.Text = serialPortName;//显示用户打开的那个串口号
                }
                }
                else{//用户没有打开过串口
                cbx_commNo.SelectedIndex = cbx_commNo.Items.Count > 0 ? 0 : -1;//显示获取的第一个串口号
                }
                }
                else if (m.WParam.ToInt32() == 0x8000){//usb串口连接上
                string[] ports = System.IO.Ports.SerialPort.GetPortNames();//重新获取串口
                cbx_commNo.Items.Clear();
                cbx_commNo.Items.AddRange(ports);
                if (btn_comm.Text == "关闭串口")
                {//用户打开过一个串口
                cbx_commNo.Text = serialPortName;//显示用户打开的那个串口号
                }
                else{
                    cbx_commNo.SelectedIndex = cbx_commNo.Items.Count > 0 ? 0 : -1;//显示获取的第一个串口号
                }
                }
                }
                base.WndProc(ref m);

        }

上述代码已通过项目测试,能够正常使用!

  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2022-04-01 00:15:52  更:2022-04-01 00:16:31 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 6:01:24-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码