标签:filename hang cep default 加载 led 退出 path form
C#中的WinFrom技术实现串口通讯助手(附源码)
??实现的功能:
1、实现自动加载可用串口。
2、打开串口,并且使用C#状态栏显示串口的状态。
3、实现了串口的接收数据和发送数据功能。
4、串口使用定时器进行定时发送数据。
5、可以打开文件夹,选择文件进行发送,并且将发送文件的内容显示在发送文本框中。
6、可以清空发送和接收文本框中的内容。
7、可以实时计算发送和接收的字节数。
8、实现打开文件夹保存发送和接收的文件内容(目前只支持.txt文件)。
9、实时显示当前时间。
??功能演示
1、界面功能介绍:
2、打开串口演示:
3、发送数据演示:
动态演示
4、定时发送数据演示:
动态演示
5、发送文件内容演示:
动态演示
6、接收数据演示:
动态演示
7、保存数据演示:
动态演示
主要使用的技术:
1、数据保存和读取。
2、定时器的操作。
3、串口模块的使用。
4、委托和事件解决线程冲突问题。
工程源代码:
using System;
using System.Drawing;
using System.IO; // 导入输入输出文件框
using System.IO.Ports; // 串口模块
using System.Text;
using System.Windows.Forms;
namespace MainSender
{
// 解决线程访问问题
public delegate void SerialPortEventHandler(Object sender, SerialPortEventArgs e); // 定义委托
public partial class SerialDebug : Form
{
private string FilePath = null; // 打开文件路径
private object thisLock = new object(); // 锁住线程
public event SerialPortEventHandler comReceiveDataEvent = null; // 定义串口接收数据响应事件
// 数据状态
private static int sendCount = 0; // 发送数据量
private static int receCount = 0; // 接收数据量
public SerialDebug()
{
InitializeComponent();
InitializeSerialSet(); // 初始化串口设置
}
///
/// 串口初始化设置
///
public void InitializeSerialSet()
{
InitializePorts(); // 初始化串口号
// 初始化波特率
comboBox_BandRate.Text = comboBox_BandRate.Items[6].ToString();
// 初始化校验位
comboBox_Check.Text = comboBox_Check.Items[0].ToString();
// 初始化数据位
comboBox_Data.Text = comboBox_Data.Items[0].ToString();
// 初始化停止位
comboBox_Stop.Text = comboBox_Stop.Items[0].ToString();
}
///
/// 可用串口扫描,并且显示
///
public void InitializePorts()
{
comboBox_Serial.Items.Clear(); // 清空原来的信息
// 返回可用串口号,形式:COM3
string[] arraysPostsNames = SerialPort.GetPortNames(); // 获取所有可用的串口号
// 检查串口号是否正确
if (arraysPostsNames.Length > 0)
{
Array.Sort(arraysPostsNames); // 使用默认进行排序,从小到大肾虚
for (int i = 0; i
/// 串口读取数据响应方法
///
///
///
private void serialPortMonitor_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
{
ReceiveData();
}
private void SerialDebug_Load(object sender, EventArgs e)
{
comReceiveDataEvent += new SerialPortEventHandler(ComReceiveDataEvent); // 订阅事件
toolStripStatus_Time.Text = "时间:" + DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss"); // 显示当前时间
}
public void ComReceiveDataEvent(Object sender, SerialPortEventArgs e)
{
if (this.InvokeRequired)
{
try
{
Invoke(new Action
如果你对本工程感兴趣可以下载源代码。
C#中的WinFrom技术实现串口通讯助手(附源码)
标签:filename hang cep default 加载 led 退出 path form
原文地址:https://www.cnblogs.com/zhicungaoyuan-mingzhi/p/12321312.html