串口通信 串口相当于硬件类型的接口。比如无线传感节点发送信号到汇聚节点,汇聚节点通过串口将数据传到计算机中的上位机中,上位机接收信息,并处理。
串口是按位(bit)发送和接收字节。串口通信最重要的参数是波特率、数据位、停止位和奇偶校验。对于两个进行通信的端口,这些参数必须匹配。
a,波特率:这是一个衡量符号传输速率的参数。
b,数据位:这是衡量通信中实际数据位的参数。
c,停止位:用于表示单个包的最后一位。典型的值为1,1.5和2位。
d,奇偶校验位:在串口通信中一种简单的检错方式。
推荐代码 其中我比较满意的一个功能就是,自动缩放功能;这里给大家分享一下,采用的递归方法将每个控件下的子控件也进行比例缩放。其中Form1_Load在窗体打开的时候调用,Form1_Resize在窗体大小改变时调用。
float X;
float Y;
private void Form1_Load(object sender, EventArgs e)//窗体创建时初始化
{
X = this.Width;
Y = this.Height;
setTag(this);
}
private void setTag(Control cons)
{
foreach (Control con in cons.Controls)
{
con.Tag = con.Width + ":" + con.Height + ":" + con.Left + ":" + con.Top + ":" + con.Font.Size;
if (con.Controls.Count > 0) setTag(con); //如果此控件存在子控件,则递归调用
}
}
private void Form1_Resize(object sender, EventArgs e)//比例缩放
{
float newx = (this.Width) / X;
float newy = (this.Height) / Y;
setControls(newx, newy, this, true);
}
private void setControls(float newx, float newy, Control cons, bool se)
{
foreach (Control con in cons.Controls)
{
string[] myTag = con.Tag.ToString().Split(':'); //将con的宽、高、左边距、顶边距离及字体大小通过字符“:”分割成数组
float a = Convert.ToSingle(myTag[0]) * newx; //根据窗口的缩放比例确定控件相应的值,宽度
con.Width = (int)a;
a = Convert.ToSingle(myTag[1]) * newy; //高度
con.Height = (int)a;
a = Convert.ToSingle(myTag[2]) * newx; //左边距
con.Left = (int)a;
a = Convert.ToSingle(myTag[3]) * newy; //顶边距离
con.Top = (int)a;
Single currentSize = Convert.ToSingle(myTag[4]) * newy; //字体大小
con.Font = new Font(con.Font.Name, currentSize, con.Font.Style, con.Font.Unit);
if (con.Controls.Count > 0 && se) setControls(newx, newy, con, true); //如果此控件存在子控件,则将相应子控件执行一次setControls函数
}
}
基本的通信方式Q有并行通信和串行通信两种。
两条信息的各位数据被同时传送的通信方式称为并行通信。
并行通信的特点是:各数据位同时传送)传送速度快、效率高,但有多少数据位就需多少根数据线,因此传送成本富,且只适用于近距离(相距数米)的通信。
两条信息的各位数据被逐位按顺序传送的通信方式称为串行通信。
串行通信的特点是:数据位传送,传按位顺序进行,最少只需一根传输线即可完成,成本低但送速度慢。串行通信的距离可以从几米到几千米。
根据信息的传送方向,串行通信可以进一步分为单工、 半双工Q和全双工三种。
信息只能单向传送为 单工;
信息能双向传送但不能同时双向传送称约半双工;
信息能够同时双向传送则称为全双工。
串行通信又分为异步通信和同步通信两种方式。
在单片机中,主要使用异步通信方式。
1.2同步通信和异步通信 同步就是双方有一个共同的时钟,当发送时,接收方同时准备接收。
异步双方不需要共同的时钟,也就是接收方不知道发送方什么时候发送,所以在发送的信息中就要有 提示接收方开始接收的信息,如开始位,结束时有停止位。