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. CSP-S2019 自闭记

    $Day0:$ 最后一场zr十连测从200挂到60,嘴上说着攒rp心里觉得药丸. 得知自己在本校考试感觉8错. $Day1:$ 早上7点50到了校门口,没让进QAQ早知道我再下一把棋了. 于是跟熊聊天 ...

  2. 使用DbVisualizer 10.0.20 查询ES中的索引时需要注意的事项

    查询前5条数据 光标停在某一个查询结果框中,左下角会显示该字段的类型 查询类型是text的字段使用单引号,使用双引号查询会报错

  3. 记vs2017编辑launchSettings.json中launchUrl错误

    当编辑launchSettings.json中launchUrl后,api访问出错,Swagger页面不能使用. 解决方法:将项目根目录下.vs文件夹删除,然后重新生成,ok

  4. JavaScript入门(三)

    JavaScript入门篇—JSONP的应用 什么是JSONP 个人理解:将服务器端返回的json数据封装成JavaScript对象,非正式传输协议. JSONP解决了什么问题 Ajax不支持跨域请求 ...

  5. Space Syntax(空间句法)

    01 December 2019 13:16     https://spacesyntax.com/     相关软件:Depthmap     空间句法理论作为一种新的描述建筑和城市空间模式的语言 ...

  6. Python面向对象之私有属性和私有方法

    01. 应用场景及定义方式 应用场景 在实际开发中,对象 的 某些属性或方法 可能只希望 在对象的内部被使用,而 不希望在外部被访问到 私有属性 就是 对象 不希望公开的 属性 私有方法 就是 对象  ...

  7. 使用MQ消息队列的优缺点

    前言 公司的项目一直都是在使用MQ的,但是由于使用的功能很简单,所以一直都是知其然不知其所以然,作为一个程序猿有必要了解每一个使用的技术,为什么使用它?它的优点是什么?缺点是什么?等等... 使用mq ...

  8. VIM编辑器使用的小技巧

    在命令中输入 vi –t 类型名.结构体名或者函数名 系统就会寻找相应的对象,默认是在当前目录的 tags 中搜索,例如我们想寻找 stat 结构体, 则输入 vi –t  stat 然后按 q 退出 ...

  9. docker下安装redis集群

    docker-compose.yml master: image: redis:4 container_name: redis-cluster_master command: redis-server ...

  10. Android-----创建SQLite数据库

    简单介绍一下Android系统内置轻便又功能强大的嵌入式数据库--SQLite. SQLite是D.Richard Hipp用C语言编写的开源嵌入式数据库引擎,它是一款轻型的数据库,是遵守ACID的关 ...