发送串口数据:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO.Ports;
namespace SendData
{
class Program
{
static void Main(string[] args)
{
SerialPort port = new SerialPort();
Console.WriteLine("串口(如COM1):");
port.PortName = Console.ReadLine();
Console.WriteLine("波特率:");
port.BaudRate = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("数据位:");
port.DataBits = Convert.ToInt32(Console.ReadLine());
int stopBits = 0;
Console.WriteLine("停止位:");
stopBits = Convert.ToInt32(Console.ReadLine());
switch (stopBits)
{
case 0:
port.StopBits = StopBits.None;
break;
case 1:
port.StopBits = StopBits.One;
break;
case 2:
port.StopBits = StopBits.Two;
break;
default:
port.StopBits = StopBits.None;
break;
}
try
{
port.Open();
string sendData="";
bool exitFlag=false;
while (exitFlag == false)
{
Console.WriteLine("要发送的数据:");
sendData = Console.ReadLine();
if (sendData.CompareTo("exit") == 0)
break;
else
port.WriteLine(sendData);
}
port.Close();
}
catch(Exception e)
{
Console.WriteLine(e.Message);
Console.ReadLine();
}
}
}
}
接受串口数据:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO.Ports;
namespace RecvData
{
class Program
{
static void Main(string[] args)
{
SerialPort port = new SerialPort();
Console.WriteLine("串口(如COM1):");
port.PortName = Console.ReadLine();
Console.WriteLine("波特率:");
port.BaudRate = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("数据位:");
port.DataBits = Convert.ToInt32(Console.ReadLine());
int stopBits = 0;
Console.WriteLine("停止位:");
stopBits = Convert.ToInt32(Console.ReadLine());
switch (stopBits)
{
case 0:
port.StopBits = StopBits.None;
break;
case 1:
port.StopBits = StopBits.One;
break;
case 2:
port.StopBits = StopBits.Two;
break;
default:
port.StopBits = StopBits.None;
break;
}
try
{
port.Open();
bool exitFlag = false;
int n = 0;
while (exitFlag == false)
{
Console.WriteLine(port.ReadLine());
n++;
if (n == 999999)
{
Console.WriteLine("是否继续?(y/s)");
string ans = Console.ReadLine();
if (ans.CompareTo("y") == 0)
exitFlag = true;
else
n = 0;
}
}
port.Close();
}
catch (Exception e)
{
Console.WriteLine(e.Message);
Console.ReadLine();
}
}
}
}