您当前所在位置:首页游戏攻略serialport控件如何使用(上位机开发serialport控件使用)

serialport控件如何使用(上位机开发serialport控件使用)

更新:2023-10-03 10:24:02编辑:xiazaizhan归类:游戏攻略人气:223

物联网系列教程

一个很好的物联网(IoT)开发实战入门教程,图、文详细。供计算机、电子工程相关专业的在校生以及相关领域初学者、爱好者参考学习。涉及单片机、上位机、移动应用、服务器后台开发的知识,以及蓝牙4.0、以太网模块的使用实例。

serialport控件如何使用(上位机开发serialport控件使用)


目录

第一部分:基础入门

第1项:单片机开发——Arduino

1.1 Arduino开发环境搭建(往期文章)

1.2 点亮一个Led(往期文章)

1.3 PWM操作(往期文章)

1.4 UART的使用(往期文章)

第2项:上位机开发——.Net

2.1 winform快速入门(上期文章)

2.2 serialport控件使用(本期文章)

第3项:移动开发——Android

3.1 安卓开发环境搭建(下期文章更新,两天更新一期)

3.2 HelloActivity分析

3.3 LinearLayout与基本控件

3.4 Intent与Activity的生命周期

3.5 ListView与BaseAdapter

3.6 Service学习

3.7 Android权限机制

3.8 BroadCastReciever学习

第4项:后端开发——Golang

4.1 go语言开发环境搭建

4.2 go语言基础快速入门

4.3 用go语言显示一个网页

4.4 go语言web框架——gin

4.5 部署go语言项目

第二部分:案例学习

第5项:蓝牙4.0案例——手机控制RGB灯颜色

5.1 用串口控制RGB灯颜色

5.2 用上位机控制RGB灯颜色

5.3 蓝牙4.0简单介绍

5.4 蓝牙4.0安卓例程源码阅读

5.5 用安卓手机控制RGB灯颜色

第6项:网络模块案例——温度采集系统开发

6.1 Arduino温度传感器的使用

6.2 ENC28J60模块的使用

6.3 在网页上显示温度

2.2 serialport控件使用

这一节,我们将完成一个简易的串口调试助手。并用Nano开发板来测试我们的串口助手。

界面布局

首先创建一个工程,我这里起名叫做“SerialPortTool”。我们先完成以下界面的布局。

serialport控件如何使用(上位机开发serialport控件使用)


接下来为各个控件修改一下名字:

端口号 --> portComboBox

波特率 --> baudRateComboBox

打开串口 --> openBtn

关闭串口 --> closeBtn

接收区 --> receivedTBox

发送区 --> sendTBox

发送 --> sendBtn

在Form_Load中初始化各个控件:

private?void?Form1_Load(object?sender,?EventArgs?e){
????closeBtn.Enabled?=?false;?//没有打开串口时,无法点击关闭串口

????//初始化端口号
????for?(int?i?=?1;?i?<=?20;?i++)
????{
????????portComboBox.Items.Add("COM"?+?i);
????}
????portComboBox.SelectedText?=?"COM1";????//初始化波特率
????string[]?baudRates?=?{"300","600","1200","2400",?????????????????????????????"4800","9600","19200",?????????????????????????????"38400","43000","56000",?????????????????????????????"57600","115200"?};????foreach?(string?baudRate?in?baudRates)
????{
????????baudRateComboBox.Items.Add(baudRate);
????}
????baudRateComboBox.SelectedText?=?"9600";
}

添加SerialPort控件

我们搜索SerialPort控件后,直接双击它就可以添加到窗体中,不过这个控件和其他的不太一样,它没有显示在界面中,不过自己想想的话,它也不需要在界面中有什么显示,只需要后台跑,监听串口就好了。

serialport控件如何使用(上位机开发serialport控件使用)


选中SerialPort控件,然后选中它的事件,我们可以看到这里有一个DataReceive的事件,也就是接收到数据,就会调用这个方法。

serialport控件如何使用(上位机开发serialport控件使用)


在DataReceive中,我们需要把接收到的数据追加到接收区的后面。输入serialPort1之后再输入一个点,然后输入read,我们这是可以看到和read相关的方法。这里有一个叫ReadExisting的方法,就是把所有的数据都读出来。用这个就好了。

private?void?serialPort1_DataReceived(object?sender,?System.IO.Ports.SerialDataReceivedEventArgs?e){????try
????{????????string?receivedText?=?serialPort1.ReadExisting();
????????receivedTBox.Text?+=?receivedText;
????}????catch?(Exception?ex)
????{
????????MessageBox.Show(ex.Message);
????}
}

接下来我们要处理串口打开和关闭以及发送的相关的操作了,serialPort下面很容易就找到相关操作的代码了。我这里直接把后面的部分完成了。

//打开串口private?void?openBtn_Click(object?sender,?EventArgs?e){????try
????{
????????serialPort1.PortName?=?portComboBox.Text;
????????serialPort1.BaudRate?=?int.Parse(baudRateComboBox.Text);
????????serialPort1.Open();
????????openBtn.Enabled?=?false;
????????closeBtn.Enabled?=?true;????????//打开串口之后波特率和端口号就不能改了
????????baudRateComboBox.Enabled?=?false;
????????portComboBox.Enabled?=?false;
????}????catch?(Exception?ex)
????{
????????MessageBox.Show(ex.Message);
????}
}//关闭串口private?void?closeBtn_Click(object?sender,?EventArgs?e){????try
????{
????????serialPort1.Close();
????????openBtn.Enabled?=?true;
????????closeBtn.Enabled?=?false;

????????baudRateComboBox.Enabled?=?true;
????????portComboBox.Enabled?=?true;
????}????catch?(Exception?ex)
????{
????????MessageBox.Show(ex.Message);
????}
}//发送数据private?void?sendBtn_Click(object?sender,?EventArgs?e){????try
????{
????????serialPort1.WriteLine(sendTBox.Text);
????}????catch?(Exception?ex)
????{
????????MessageBox.Show(ex.Message);
????}
}

用Arduino测试

Okay,程序写好了,我们先为开发板烧写1.4节的程序,然后通过自己写的串口助手连接上Arduino开发板,选择打开串口。

serialport控件如何使用(上位机开发serialport控件使用)


serialport控件如何使用(上位机开发serialport控件使用)


打开成功,然后在发送区输入“Hello, Arduino!”。

不过好像很不幸,程序失败了。这个情况我之前也没有遇到过,于是我百度了一下,有人说在窗体的构造函数处添加一行代码就可以。修改后的构造函数如下:

public?Form1(){
????InitializeComponent();????//取消跨线程检查
????Control.CheckForIllegalCrossThreadCalls?=?false;
}
serialport控件如何使用(上位机开发serialport控件使用)


这样就测试成功了。成功输出了:“H e l l o , A r d u i n o ! ”。
不过这个程序还是有很多小问题的,比如说接受很多数据,但是接收区无法自动滑动到底端,还有窗口的大小可以任意调整。我稍微修改了些代码,放在了本节源码文件下的SerialPortTool2目录中。有兴趣可以看看。

下期更新预告:

第1部分:单片机开发——Arduino

1.1 Arduino开发环境搭建(往期文章,点击前往查看)

1.2 点亮一个Led(往期文章,点击前往查看)

1.3 PWM操作(往期文章,点击前往查看)

1.4 UART的使用(往期文章,点击前往查看)

第2项:上位机开发——.Net

2.1 winform快速入门(上期文章,点击前往查看)

2.2 serialport控件使用(本期文章)

第3项:移动开发——Android

3.1 安卓开发环境搭建(下期更新这部分内容)


热门安卓游戏下载-海量安卓软件-迷你狗下载站版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 869483289@qq.com 举报,一经查实,本站将立刻删除。

dnf炽天使95级加点(地下城与勇士炽天使加点) 穿越火线端游源武器哪个好(cf源系列怎么获得永久)