串口连接有几个必须要设置的值:串口,波特率,校验位,数据位,停止位
目录
简单串口通讯效果图

串口:获取串口
string[] ports = SerialPort.GetPortNames();
foreach (string port in ports)
{
CbCom.Items.Add(port);
}CbCom.SelectedIndex = 0;
波特率: 波特率单位是bit/s,代表是每秒传递多少个bit,也就是多少个位。一般使用9600
波特率代表串口的传输数据能力,波特率越高传输数据越快,但是太高会出现传输数据不稳定的问题;发送方与接收方波特率要保持一致。 CbBaudRate.SelectedIndex = 5;

校验位: C#中有Parity枚举类型设置校验位。一般使用None无校验,Odd奇校验,Even偶检验。
comboBox4.SelectedIndex = 0;
数据位:一般情况下使用8,其他的也可以设置 CbDataBits.SelectedIndex = 3;
停止位: C#中StopBits枚举类型设置停止位,默认值设置1 StopBits.One CbStopBits.SelectedIndex = 1;

一、实例化串口通讯类
SerialPort sp = new SerialPort();//实例化串口通讯类
private System.Timers.Timer tmr = new System.Timers.Timer();//实例化定时发送定时器
private object obj = new object();//锁
页面初次加载时
sp.DataReceived += new SerialDataReceivedEventHandler(sp_DataReceived);//接收数据事件
sp.Encoding = System.Text.Encoding.GetEncoding("GB2312");//编码类型tmr.Elapsed += new System.Timers.ElapsedEventHandler(OnTmrTrg);定时事件
tmr.Interval =(double)numericUpDown4.Value;//定时发送间隔时间
tmr.AutoReset = true; //true-一直循环 ,false-循环一次
tmr.Enabled = false;
二、打开串口/关闭串口
if (button1.Text == "打开串口")
{
sp.PortName = CbCom.Text;//串口
sp.BaudRate =int.Parse(CbBaudRate.Text);//波特率
sp.DataBits=int.Parse(CbDataBits.Text);//数据位
sp.StopBits=(StopBits)int.Parse(CbStopBits.Text);//停止位
if (sp.IsOpen)
{
sp.Close();
sp.Open();
}
else
{
sp.Open();
&nb

8632

被折叠的 条评论
为什么被折叠?



