串口通信 串口相当于硬件类型的接口。比如无线传感节点发送信号到汇聚节点,汇聚节点通过串口将数据传到计算机中的上位机中,上位机接收信息,并处理。

串口是按位(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同步通信和异步通信 同步就是双方有一个共同的时钟,当发送时,接收方同时准备接收。

异步双方不需要共同的时钟,也就是接收方不知道发送方什么时候发送,所以在发送的信息中就要有 提示接收方开始接收的信息,如开始位,结束时有停止位。