https://www.cnblogs.com/yangfengwu/p/11087558.html

咱用这个编写 ,版本都无所谓哈,只要自己有就可以,不同版本怎么打开

https://www.cnblogs.com/aliflycoris/p/8005955.html

C#API     https://docs.microsoft.com/zh-cn/dotnet/api/?view=netframework-4.0

放几个文本显示

放个下拉框,用来选择串口号

各复制出来

把串口拖上来

做一个功能,软件启动的时候把电脑上所有的串口号显示到

string[] ports = System.IO.Ports.SerialPort.GetPortNames();//获取电脑上可用串口号

看一下控件的ID

comboBox1.Items.AddRange(ports);//给comboBox1添加数据
comboBox1.SelectedIndex = comboBox1.Items.Count > ? : -;//如果里面有数据,显示第0个

如果电脑上有可用串口,会显示

现在控制串口打开和关闭,,,,,,,改改按钮显示的哈,,,

让它默认显示打开

忘了...先设置下有可选择的波特率

写上常用的


9600
4800
1200

设置下默认显示的

if (button1.Text == "打开")//如果按钮显示的是打开
{
try//防止意外错误
{
serialPort1.PortName = comboBox1.Text;//得到comboBox1显示的串口内容
serialPort1.BaudRate = Convert.ToInt32(comboBox2.Text);//得到comboBox2显示的波特率内容
serialPort1.Open();//打开串口
button1.Text = "关闭";//按钮显示关闭
}
catch (Exception)
{
MessageBox.Show("打开失败", "提示!");//对话框显示打开失败
}
}
else//要关闭串口
{
try//预防串口有问题了,实际上已经关了
{
serialPort1.Close();//关闭串口
}
catch (Exception)
{
}
button1.Text = "打开";//按钮显示打开
}

现在优化一个地方

就是串口本来连接着电脑,然后拔下来了,或者重新来了个串口,咱检测下串口热插拔,然后重新更新下显示

https://blog.csdn.net/woshidaniu/article/details/44044093

开始上菜了哈,,

        protected override void WndProc(ref Message m)
{
if (m.Msg == 0x0219)//设备改变
{
if (m.WParam.ToInt32() == 0x8004)//usb串口拔出
{
string[] ports = System.IO.Ports.SerialPort.GetPortNames();//重新获取串口
comboBox1.Items.Clear();
comboBox1.Items.AddRange(ports);
if (button1.Text == "关闭")//咱打开过一个串口
{
if (!serialPort1.IsOpen)//咱打开的那个关闭了,说明拔插的是咱打开的
{
button1.Text = "打开";
serialPort1.Dispose();//释放掉原先的串口资源
comboBox1.SelectedIndex = comboBox1.Items.Count > ? : -;//显示获取的第一个串口号
}
else//热插拔不是咱打开的那个
{
comboBox1.Text = PortNameCopy;//默认显示的是咱打开的那个串口号
}
}
else//没有打开过
{
comboBox1.SelectedIndex = comboBox1.Items.Count > ? : -;//显示获取的第一个串口号
}
}
else if (m.WParam.ToInt32() == 0x8000)//usb串口连接上
{
string[] ports = System.IO.Ports.SerialPort.GetPortNames();//重新获取串口
comboBox1.Items.Clear();
comboBox1.Items.AddRange(ports);
if (button1.Text == "关闭")//咱打开过一个串口
{
comboBox1.Text = PortNameCopy;//默认显示的是咱打开的那个串口号
}
else
{
comboBox1.SelectedIndex = comboBox1.Items.Count > ? : -;//显示获取的第一个串口号
}
}
}
base.WndProc(ref m);
}

这个是系统自带的函数

关于那些值,,,我是自己监控的....

现在大家自己测试热插拔哈

写的够多的了...放到下一节接着写

https://www.cnblogs.com/yangfengwu/p/11087618.html

8-ESP8266 SDK开发基础入门篇--编写串口上位机软件的更多相关文章

  1. 9-ESP8266 SDK开发基础入门篇--编写串口上位机软件

    https://www.cnblogs.com/yangfengwu/p/11087613.html 页面修改成这样子             现在看串口发送数据 点击点亮 发送0xaa 0x55 0 ...

  2. 26-ESP8266 SDK开发基础入门篇--编写WIFI模块 SmartConfig/Airkiss 一键配网

    https://www.cnblogs.com/yangfengwu/p/11427504.html SmartConfig/Airkiss 配网需要APP/微信公众号,这节大家先使用我做好的APP/ ...

  3. 29-ESP8266 SDK开发基础入门篇--编写TCP 客户端程序(Lwip RAW模式,非RTOS版,精简入门)

    https://www.cnblogs.com/yangfengwu/p/11456667.html 由于上一节的源码长时间以后会自动断开,所以再做这一版非RTOS版的,咱直接用lua源码里面别人写的 ...

  4. 28-ESP8266 SDK开发基础入门篇--编写wifi模块TCP 客户端程序(官方API版,非RTOS版)

    https://www.cnblogs.com/yangfengwu/p/11432795.html 注:这节实现的功能是WIFI模块作为TCP 客户端,连接咱的TCP服务器,然后实现透传 本来想着做 ...

  5. 27-ESP8266 SDK开发基础入门篇--编写Android SmartConfig一键配网程序

    style="font-size: 18pt;">https://www.cnblogs.com/yangfengwu/p/11429007.html https://wik ...

  6. 22-ESP8266 SDK开发基础入门篇--编写Android TCP客户端 , 连接和断开

    https://www.cnblogs.com/yangfengwu/p/11192618.html 有些很细致的东西参考这篇   https://www.cnblogs.com/yangfengwu ...

  7. 23-ESP8266 SDK开发基础入门篇--编写Android TCP客户端 , 加入消息处理

    https://www.cnblogs.com/yangfengwu/p/11203546.html 先做接收消息 然后接着 public class MainActivity extends App ...

  8. 1-ESP8266 SDK开发基础入门篇--开发环境搭建

    因为今天终于做好了自己的另一块工控板,所以我就开始写基础公开篇的内容,希望自己小小的努力能够帮到大家 自己做的另一块板子 https://www.cnblogs.com/yangfengwu/cate ...

  9. 25-ESP8266 SDK开发基础入门篇--控制WIFI连接路由器

    https://www.cnblogs.com/yangfengwu/p/11324411.html 说个事情,现在SDK的版本已经出到3.0了,但是我还是使用2.0 如果只是为了学习研究   选择3 ...

随机推荐

  1. golang学习笔记--函数和方法

    在go中,函数类型是一等类型,这意味着可以吧函数当做一个值来传递和使用. func divide(dividend int,divisor int)(int,error){ //省略部分代码 } 参数 ...

  2. Dapper安装与使用

    1.VS2015直接使用nuget包搜索Dapper,安装时报错:显示版本不兼容. 于是使用命令安装dapper低版本.  步骤:  打开项目,vs工具---Nuget包管理器--程序包管理器控制台 ...

  3. kafka集群安全化之启用kerberos与acl

    一.背景 在我们部署完kafka之后,虽然我们已经可以“肆意”的用kafka了,但是在一个大公司的实际生产环境中,kafka集群往往十分庞大,每个使用者都应该只关心自己所负责的Topic,并且对其他人 ...

  4. dapper.common新增概念object to sql

    Dapper.Common About author Email:@qq.com QQ: QQGroup: Config DbContextFactory.AddDataSource(new Data ...

  5. Typora优化-适合不懂CSS代码的小白

    转载请注明出处:https://www.cnblogs.com/nreg/p/11116176.html  先来一张优化前与优化后的对比图: 优化前: 优化后: 1.通过 文件-偏好设置 打开主题文件 ...

  6. 链表(Linked List)

    链表(Linked List) 一.介绍 链表是有序的列表,它在内存中存储方式(物理存储)如下: 小结: (1)链表是以节点的方式来存储,是链式存储. (2)每个节点包含 data 域:存储数据:ne ...

  7. 英语partschinite芬达石partschinite锰铝榴石

    partschinite指锰铝榴石,属于石榴石的一种,由于它有芬达饮料的诱人颜色,大家也称其为“芬达石”.石榴石宝石族中重要品种之一,化学成分为锰铝硅酸盐,颜色从红到橙红,红到棕红,玫瑰红.浅玫红均有 ...

  8. Golang: 读取文件并统计内容

    上次我们从命令行接收用户输入,并统计了每次输入内容出现的次数,今天对程序加以改造,使其能够读取文件内容,并统计每行文本出现的次数. 首先,我们把接收输入的逻辑封装成一个函数: // scan.go p ...

  9. MySQL 5.7数据库参数优化

    连接相关参数 max_connections:允许客户端并发连接的最大数量,默认值是151,一般将该参数设置为500-2000max_connect_errors:如果客户端尝试连接的错误数量超过这个 ...

  10. (二)Kubernetes kubeadm部署k8s集群

    kubeadm介绍 kubeadm是Kubernetes项目自带的及集群构建工具,负责执行构建一个最小化的可用集群以及将其启动等的必要基本步骤,kubeadm是Kubernetes集群全生命周期的管理 ...