1.RS232是全双工的,RS485是半双工的,RS422是全双工的。
在信息传输通道中,携带数据信息的信号单元叫码元,每秒钟通过信道传输的码元数称为码元传输速率,简称波特率。波特率是传输通道频宽的指标。
波特率9600与波特率19200的区别就是:波特率19200传输快但传输距离近,波特率9600传输相对远但速率慢。
比如一个英文字母,所以:9600的波特率的信道,理论上每秒可以传输9600个二进制位,也就是9600/8个英文字母的数据量,也就是1200个字节,大约1.2KB。而19200则是每秒可传输2400字节,大约2.4KB。文章来源地址https://www.toymoban.com/news/detail-519216.html
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO.Ports;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace WindowsFormsApp1
{
public partial class Form1 : Form
{
SerialPort com = new SerialPort();
private void button1_Click(object sender, EventArgs e)
{
com.BaudRate = 115200;
com.PortName = "COM2";
com.DataBits = 8;
com.Parity = Parity.None;
com.StopBits = StopBits.One;
com.WriteTimeout = 3000;
com.ReadTimeout = 3000;
com.ReceivedBytesThreshold = 1;
com.RtsEnable = true;
com.DtrEnable = true;
com.DataReceived += new SerialDataReceivedEventHandler(com_DataReceived);
com.Open();
}
private void button2_Click(object sender, EventArgs e)
{
try
{
//首先判断串口是否开启
if (com.IsOpen)
{
//串口处于开启状态,将发送区文本发送
com.Write("12321321");
}
}
catch (Exception ex)
{
//捕获到异常,创建一个新的对象,之前的不可以再用
com = new System.IO.Ports.SerialPort();
//刷新COM口选项
comboBox1.Items.Clear();
comboBox1.Items.AddRange(System.IO.Ports.SerialPort.GetPortNames());
//响铃并显示异常给用户
System.Media.SystemSounds.Beep.Play();
button1.Text = "打开串口";
button1.BackColor = Color.ForestGreen;
MessageBox.Show(ex.Message);
}
}
private void com_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
try
{
//因为要访问UI资源,所以需要使用invoke方式同步ui
this.Invoke((EventHandler)(delegate
{
// 非中文
textBox_receive.AppendText(com.ReadExisting());
// 接受中文
int str = com.BytesToRead;//byte方式读
//接收到的str数据中有中文,编码成GB2312,可正常显示中文
byte[] bytes = new byte[str];
com.Read(bytes, 0, str);
string str1 = System.Text.Encoding.Default.GetString(bytes);
//添加内容。AppendText函数等同:textBox1.Text += str;即在尾部添加,不清空前面接收的字符
textBox_receive.AppendText(str1);
}
)
);
}
catch (Exception ex)
{
//响铃并显示异常给用户
System.Media.SystemSounds.Beep.Play();
MessageBox.Show(ex.Message);
}
}
}
}
文章来源:https://www.toymoban.com/news/detail-519216.html
到了这里,关于.NET串口通信 RS232 、RS485的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!