老司机夜插-理伦理片-理伦片免费-理伦片免费观看-理伦片免费看-理伦日韩-理论福利片-理论片第一页-理论片电影-理论片理论

金喜正规买球

C#開發(fā)串口總結(jié)

轉(zhuǎn)帖|其它|編輯:郝浩|2011-07-20 14:39:13.000|閱讀 2705 次

概述:開發(fā)C#相關(guān)的項目有很多年了,一直沒有接觸串口的開發(fā),近期由于工作的需要,需要了解熟悉對硬件串口的開發(fā),通過對串口的深入了解,串口也不再是什么神秘的東西,利用SerailPort組件,對串口的各種操作也非常的方便,由于本人總是喜歡把一些常用的東西封裝成可供重復(fù)利用的類庫,因此,閱百家代碼,提煉總結(jié)優(yōu)化,把對串口的操作封裝成一個公用的類庫,應(yīng)付日常的串口編程開發(fā),也算是工作的一個階段性總結(jié)吧。

# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>

  開發(fā)C#相關(guān)的項目有很多年了,一直沒有接觸串口的開發(fā),近期由于工作的需要,需要了解熟悉對硬件串口的開發(fā),通過對串口的深入了解,串口也不再是什么神秘的東西,利用SerailPort組件,對串口的各種操作也非常的方便,由于本人總是喜歡把一些常用的東西封裝成可供重復(fù)利用的類庫,因此,閱百家代碼,提煉總結(jié)優(yōu)化,把對串口的操作封裝成一個公用的類庫,應(yīng)付日常的串口編程開發(fā),也算是工作的一個階段性總結(jié)吧。

  先上圖,了解串口的一些基本的東西,并逐步介紹相關(guān)的知識。

 

  微軟在 .NET FrameWork2.0中對串口通訊進(jìn)行了封裝,我們可以在.net2.0及以上版本開發(fā)時直接使用SerialPort類對串口進(jìn)行讀寫操作。 SerialPort類的屬性主要包括:    

1)串口名稱(PortName)   

 2)波特率(BaudRate)  

3)數(shù)據(jù)位 DataBits    

4)停止位 StopBits

5)奇偶校驗 Parity  SerialPort類的事件主要包括:     DataReceived:用于異步接收串口數(shù)據(jù)事件

    ErrorReceived:錯誤處理事件

SerialPort類的方法主要包括: 

    Open();Close();Read();Write()、DiscardInBuffer()、DiscardOutBuffer()等

  從上面的測試?yán)訄D中,我們可以看到,一般對串口的操作,需要提供串口號、波特率、數(shù)據(jù)位、停止位、奇偶校驗的參數(shù),用來構(gòu)造一個串口操作類,以便實現(xiàn)具體的串口操作,而這些參數(shù)有的是系統(tǒng)內(nèi)置的枚舉參數(shù),我們可以通過遍歷枚舉對象來綁定下來列表(如停止位、奇偶校驗);但有些參數(shù)卻不是系統(tǒng)內(nèi)置的枚舉類型,例如波特率、數(shù)據(jù)位等,而且對這些參數(shù)操作也是串口開發(fā)經(jīng)常用到的,因此,第一步,我對這些參數(shù)的綁定做了一個簡單的封裝。

  1、先構(gòu)造波特率、數(shù)據(jù)位這兩個枚舉對象,方便實際操作。

    /// <summary>
     /// 串口數(shù)據(jù)位列表(5,6,7,8)
     ///  </summary>
     public enum SerialPortDatabits : int
     {
         FiveBits = 5,
         SixBits = 6,
         SeventBits = 7,
         EightBits = 8
     }

     ///  <summary>
     /// 串口波特率列表。
     /// 

75,110,150,300,600,1200,2400,4800,9600,

14400,19200,28800,38400,56000,57600,
     /// 115200,128000,230400,256000
     ///  </summary>
     public enum SerialPortBaudRates : int
     {
         BaudRate_75 = 75,
         BaudRate_110 = 110,
         BaudRate_150 = 150,
         BaudRate_300 = 300,
         BaudRate_600 = 600,
         BaudRate_1200 = 1200,
         BaudRate_2400 = 2400,
         BaudRate_4800 = 4800,
         BaudRate_9600 = 9600,
         BaudRate_14400 = 14400,
         BaudRate_19200 = 19200,
         BaudRate_28800 = 28800,
         BaudRate_38400 = 38400,
         BaudRate_56000 = 56000,
         BaudRate_57600 = 57600,
         BaudRate_115200 = 115200,
         BaudRate_128000 = 128000,
         BaudRate_230400 = 230400,
         BaudRate_256000 = 256000
   } 

 

  2、對常用的參數(shù)下拉列表綁定做一個封裝。

        /// <summary>
         /// 設(shè)置串口號
         ///  </summary>
         ///  <param name="obj"></param>
         public static void SetPortNameValues(ComboBox obj)
         {
             obj.Items.Clear();
             foreach (string str in SerialPort.GetPortNames())
             {
                 obj.Items.Add(str);
             }
         }

         ///  <summary>
         /// 設(shè)置波特率
         ///  </summary>
         public static void SetBauRateValues(ComboBox obj)
         {
             obj.Items.Clear();
              foreach (SerialPortBaudRates rate in Enum.

GetValues(typeof(SerialPortBaudRates)))
             {
                 obj.Items.Add(((int)rate).ToString());
             }
         }

         ///  <summary>
         /// 設(shè)置數(shù)據(jù)位
         ///  </summary>
         public static void SetDataBitsValues(ComboBox obj)
         {
             obj.Items.Clear();
              foreach (SerialPortDatabits databit in Enum.

GetValues(typeof(SerialPortDatabits)))
             {
                 obj.Items.Add(((int)databit).ToString());
             }
         }

         ///  <summary>
         /// 設(shè)置校驗位列表
         ///  </summary>
         public static  void SetParityValues(ComboBox obj)
         {
             obj.Items.Clear();
             foreach (string str in Enum.GetNames(typeof(Parity)))
             {
                 obj.Items.Add(str);
             }
         }

         ///  <summary>
         /// 設(shè)置停止位
         ///  </summary>
         public static void SetStopBitValues(ComboBox obj)
         {
             obj.Items.Clear();
             foreach (string str in Enum.GetNames(typeof(StopBits)))
             {
                 obj.Items.Add(str);
             } 
        }

  這樣我們在窗體界面代碼中,綁定相關(guān)參數(shù)的數(shù)據(jù)源就很方便了,如下所示。

        private void Form1_Load(object sender, EventArgs e)
         {
             BindData();
         }

         private void BindData()
         {
             //綁定端口號
             SerialPortUtil.SetPortNameValues(txtPort);
             txtPort.SelectedIndex = 0;

             //波特率
             SerialPortUtil.SetBauRateValues(txtBaudRate);
             txtBaudRate.SelectedText =  "57600";

             //數(shù)據(jù)位
             SerialPortUtil.SetDataBitsValues(txtDataBits);
             this.txtDataBits.SelectedText =  "8";

             //校驗位
             SerialPortUtil.SetParityValues(txtParity);
             this.txtParity.SelectedIndex = 0;

             //停止位
             SerialPortUtil.SetStopBitValues(txtStopBit);
             this.txtStopBit.SelectedIndex = 1;
          
             this.btnSend.Enabled = isOpened;
          }

  3、 為了方便構(gòu)造封裝的窗口類,提供了兩個不同類型參數(shù)的串口輔助類構(gòu)造函數(shù),一個可以使用枚舉參數(shù),一個使用字符串參數(shù)(最終轉(zhuǎn)換為枚舉參數(shù)對象),如下所示。使用枚舉對象,不需要記住不同參數(shù)應(yīng)該填寫那些值,只需要從枚舉中選擇即可,方便又直觀。

        /// <summary>
         /// 參數(shù)構(gòu)造函數(shù)(使用枚舉參數(shù)構(gòu)造)
         ///  </summary>
         ///  <param name="baud">波特率</param>
         ///  <param name="par">奇偶校驗位</param>
         ///  <param name="sBits">停止位</param>
         ///  <param name="dBits">數(shù)據(jù)位</param>
         ///  <param name="name">串口號</param>
          public SerialPortUtil(string name, SerialPortBaudRates baud, 

Parity par, SerialPortDatabits dBits, StopBits sBits)
         {
             _portName = name;
             _baudRate = baud;
             _parity = par;
             _dataBits = dBits;
             _stopBits = sBits;

   comPort.DataReceived +=

 new SerialDataReceivedEventHandler(comPort_DataReceived);
comPort.ErrorReceived += 

new SerialErrorReceivedEventHandler(comPort_ErrorReceived);
         }

         ///  <summary>
         /// 參數(shù)構(gòu)造函數(shù)(使用字符串參數(shù)構(gòu)造)
         ///  </summary>
         ///  <param name="baud">波特率</param>
         ///  <param name="par">奇偶校驗位</param>
         ///  <param name="sBits">停止位</param>
         ///  <param name="dBits">數(shù)據(jù)位</param>
         ///  <param name="name">串口號</param>
          public SerialPortUtil(string name, string baud, 

string par, string dBits, string sBits)
         {
             _portName = name;
              _baudRate = (SerialPortBaudRates)Enum.

Parse(typeof(SerialPortBaudRates), baud);
             _parity = (Parity)Enum.Parse(typeof(Parity), par);
              _dataBits = (SerialPortDatabits)Enum.

Parse(typeof(SerialPortDatabits), dBits);
             _stopBits = (StopBits)Enum.Parse(typeof(StopBits), sBits);

  comPort.DataReceived += 

new SerialDataReceivedEventHandler(comPort_DataReceived);
  comPort.ErrorReceived +=

 new SerialErrorReceivedEventHandler(comPort_ErrorReceived);
        }

  構(gòu)造函數(shù)做好了,就很方便在實際的窗體界面函數(shù)中構(gòu)造串口實例了,如下使用代碼所示:

        

private void btnConnect_Click(object sender, EventArgs e)
         {
             try
             {
                 if (serial == null)
                 {
                     try
                     {
                         string portname = this.txtPort.Text;
                          SerialPortBaudRates rate = (SerialPortBaudRates)

        

  Enum.Parse(typeof(SerialPortBaudRates),

 this.txtBaudRate.Text);//int.Parse(this.txtBaudRate.Text);
SerialPortDatabits databit = (SerialPortDatabits)int.Parse(this.txtDataBits.Text);
Parity party = (Parity)Enum.Parse(typeof(Parity), this.txtParity.Text);
StopBits stopbit = (StopBits)Enum.Parse(typeof(StopBits), this.txtStopBit.Text);

//使用枚舉參數(shù)構(gòu)造
//serial = new SerialPortUtil(portname, rate, party, databit, stopbit);

//使用字符串參數(shù)構(gòu)造
 serial = new SerialPortUtil(portname, this.txtBaudRate.Text, 

this.txtParity.Text, this.txtDataBits.Text, this.txtStopBit.Text);
serial.DataReceived +=

 new DataReceivedEventHandler(serial_DataReceived);

}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
serial = null;
return;
}
}

if (!isOpened)
{                    
serial.OpenPort();
btnConnect.Text =  "斷開";
}
else
{
serial.ClosePort();
serial = null;

btnConnect.Text =  "連接";
}

isOpened = !isOpened;
this.btnSend.Enabled = isOpened;
this.lblTips.Text = isOpened ?  "已連接" : "未連接";
}
catch (Exception ex)
{
this.lblTips.Text = ex.Message;
MessageBox.Show(ex.Message);
}
}

  4、對串口數(shù)據(jù)的發(fā)送以及串口的一些基本操作進(jìn)行簡單封裝,方便輔助類對串口進(jìn)行相關(guān)操作。

        /// <summary>
         /// 端口是否已經(jīng)打開
         ///  </summary>
         public bool IsOpen
         {
             get
             {
                 return comPort.IsOpen;
             }
         }

         ///  <summary>
         /// 打開端口
         ///  </summary>
         ///  <returns></returns>
         public void OpenPort()
         {
             if (comPort.IsOpen) comPort.Close();

             comPort.PortName = _portName;
             comPort.BaudRate = (int)_baudRate;
             comPort.Parity = _parity;
             comPort.DataBits = (int)_dataBits;
             comPort.StopBits = _stopBits;

             comPort.Open();
         }

         ///  <summary>
         /// 關(guān)閉端口
         ///  </summary>
         public void ClosePort()
         {
             if (comPort.IsOpen) comPort.Close();
         }

         ///  <summary>
         /// 丟棄來自串行驅(qū)動程序的接收和發(fā)送緩沖區(qū)的數(shù)據(jù)
         ///  </summary>
         public void DiscardBuffer()
         {
             comPort.DiscardInBuffer();
             comPort.DiscardOutBuffer();
         }

         ///  <summary>
         /// 寫入數(shù)據(jù)
         ///  </summary>
         ///  <param name="msg"></param>
         public void WriteData(string msg)
         {
             if (!(comPort.IsOpen)) comPort.Open();

             comPort.Write(msg);
         }

         ///  <summary>
         /// 寫入數(shù)據(jù)
         ///  </summary>
         ///  <param name="msg">寫入端口的字節(jié)數(shù)組</param>
         public void WriteData(byte[] msg)
         {
             if (!(comPort.IsOpen)) comPort.Open();

             comPort.Write(msg, 0, msg.Length);
         }

         ///  <summary>
         /// 寫入數(shù)據(jù)
         ///  </summary>
         ///  <param name="msg">包含要寫入端口的字節(jié)數(shù)組</param>
         ///  <param name="offset">參數(shù)從0字節(jié)開始的字節(jié)偏移量</param>
         ///  <param name="count">要寫入的字節(jié)數(shù)</param>
         public void WriteData(byte[] msg, int offset, int count)
         {
             if (!(comPort.IsOpen)) comPort.Open();

             comPort.Write(msg, offset, count);
        }

  6、接收數(shù)據(jù)的還原

  這樣基本上就對串口封裝的差不多了,不過還有一個重要的操作就是對串口的數(shù)據(jù)進(jìn)行接收,并進(jìn)行處理。由于串口獲取數(shù)據(jù)不是一次性完整的獲取的,可能會被拆分為好幾段,因此,如何還原接收到的數(shù)據(jù)也就是一個值得注意的問題,這個最好能根據(jù)協(xié)議來確定,如我的協(xié)議基本上是以“~”符號開始,以“#”符號結(jié)束,因此我對協(xié)議數(shù)據(jù)的還原,就有可依據(jù)的準(zhǔn)則。

1)首先要構(gòu)造一個數(shù)據(jù)處理的代理,和一個數(shù)據(jù)處理的事件參數(shù)類,如下所示。 

    public class DataReceivedEventArgs : EventArgs
     {
         public string DataReceived;
         public DataReceivedEventArgs(string m_DataReceived)
         {
             this.DataReceived = m_DataReceived;
         }
     }

      public delegate void DataReceivedEventHandler(DataReceivedEventArgs e); 

2)然后構(gòu)造一個數(shù)據(jù)接收和錯誤處理的事件,如下所示

        /// <summary>
         /// 完整協(xié)議的記錄處理事件
         ///  </summary>
         public event DataReceivedEventHandler DataReceived;
          public event SerialErrorReceivedEventHandler Error; 

3)在構(gòu)造函數(shù)添加相關(guān)的事件處理,如下所示

        /// <summary>
         /// 參數(shù)構(gòu)造函數(shù)(使用枚舉參數(shù)構(gòu)造)
         ///  </summary>
         ///  <param name="baud">波特率</param>
         ///  <param name="par">奇偶校驗位</param>
         ///  <param name="sBits">停止位</param>
         ///  <param name="dBits">數(shù)據(jù)位</param>
         ///  <param name="name">串口號</param>
          public SerialPortUtil(string name, SerialPortBaudRates baud, Parity par, 

SerialPortDatabits dBits, StopBits sBits)
         {
             _portName = name;
             _baudRate = baud;
             _parity = par;
             _dataBits = dBits;
             _stopBits = sBits;

              comPort.DataReceived += 

new SerialDataReceivedEventHandler(comPort_DataReceived);
              comPort.ErrorReceived += 

new SerialErrorReceivedEventHandler(comPort_ErrorReceived);
      }

 4)實現(xiàn)對數(shù)據(jù)的接收和錯誤的處理 

        /// <summary>  

      /// 結(jié)束符比特      

  /// </summary>  

      public byte EndByte = 0x23;//string End = "#";
         ///  <summary>
         /// 數(shù)據(jù)接收處理
         ///  </summary>
void comPort_DataReceived(object sender, SerialDataReceivedEventArgs e)
         {
             //禁止接收事件時直接退出
             if (ReceiveEventFlag) return;

             #region 根據(jù)結(jié)束字節(jié)來判斷是否全部獲取完成
             List <byte> _byteData = new List<byte>();
             bool found = false;//是否檢測到結(jié)束符號
             while (comPort.BytesToRead  > 0 || !found)
             {
                 byte[] readBuffer = new byte[comPort.ReadBufferSize + 1];
                 int count = comPort.Read(readBuffer, 0, comPort.ReadBufferSize);
                 for (int i = 0; i  < count; i++)
                 {
                     _byteData.Add(readBuffer[i]);

                     if (readBuffer[i] == EndByte)
                     {
                         found = true;
                     }
                 }
             } 
             #endregion
            
             //字符轉(zhuǎn)換
              string readString = 

System.Text.Encoding.Default.GetString(_byteData.ToArray(), 0, _byteData.Count);
            
             //觸發(fā)整條記錄的處理
             if (DataReceived != null)
             {
                 DataReceived(new DataReceivedEventArgs(readString));
             }
         }

         ///  <summary>
         /// 錯誤處理函數(shù)
         ///  </summary>
         void comPort_ErrorReceived(object sender, SerialErrorReceivedEventArgs e)
         {
             if (Error != null)
             {
                 Error(sender, e);
             }
        }

 

  在數(shù)據(jù)的接收還原中,我們用到了 EndByte的變量,這個變量是協(xié)議數(shù)據(jù)的結(jié)束字符,如果檢測到有這個字符的,就表明收到了一條完整的協(xié)議,可以把收到的字節(jié)數(shù)組組裝成文本字符串,然后交給委托事件進(jìn)行處理即可。

  在外部的宿主程序中,當(dāng)有數(shù)據(jù)收到的時候,輔助類會通知其對數(shù)據(jù)進(jìn)行處理,如我們在宿主程序中綁定處理代碼如下所示。

        void serial_DataReceived(DataReceivedEventArgs e)
         {
             this.txtReceived.Invoke(new MethodInvoker(delegate
             {
                 this.txtReceived.AppendText(e.DataReceived + Environment.NewLine);
             }));
        }

  這樣,一旦收到一條完整的協(xié)議,界面上就會在文本框中增加一行數(shù)據(jù),如前面的圖所示

 

  


標(biāo)簽:

本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請郵件反饋至chenjj@fc6vip.cn

文章轉(zhuǎn)載自:網(wǎng)絡(luò)轉(zhuǎn)載

為你推薦

  • 推薦視頻
  • 推薦活動
  • 推薦產(chǎn)品
  • 推薦文章
  • 慧都慧問
掃碼咨詢


添加微信 立即咨詢

電話咨詢

客服熱線
023-68661681

TOP
国语对白一区二区三区 | 国产欧美另类久久久精品 | 亚洲AV国产精品无码A片APP | 小荡货好紧好爽奶头好大视频网站 | 久久久999国产精品 久久久91精品国产一区二区三区 | 国产精品AV一区二区三区不卡蜜 | 美女把尿口扒开让男人桶 | 欧美老少欢xxx | 四川BBB搡BBB爽爽视频 | 被群CAO的合不拢腿H小说 | 日韩精品免费视频 | 真大真粗真爽使劲好猛小说网 | 在线国产中文字幕 | 一区二区三区精密机械 | 亚洲一卡2卡二卡4卡乱码 | 丁香五月天综合缴情网 | www.日本高清视频.com | 天堂在线v| 放荡女纯肉辣文 | 久久久久久尹人网香蕉 | 久久精品国产精品亚洲毛片 | 国产毛片网 | 极品少妇XXXX精品少妇偷拍 | 亚洲手机在线观看 | 狠狠色丁香久久综合网 | 亚洲精品色婷婷在线蜜芽 | WWW色情成人网站 | AV午夜午夜快憣免费观看 | 性做爰添LBB在线视频 | 天天躁人人躁人人躁狂躁 | 蜜桃TV成人网站免费打开 | 艳妇臀荡乳欲伦交换H在线观看 | 牲高潮99爽久久久久777 | 国产亚洲精品久久久久久鸭绿欲 | 亚洲人成日本在线观看 | 少妇愉情理伦片丰满丰满午夜小说 | 亚洲天堂最新网址 | 国产精品成久久久久三级 | 成人123 | 老湿免费体验区 | 免费看高视频hh网站免费 | 日本一区二区三区不卡在线看 | 97一本大道波多野吉衣 | 97人伦色伦成人免费视频 | 边啃奶头边躁狠狠躁AV | 欧洲无人区卡一卡二 | 欧美日韩亚洲综合另类ac | 艳妇臀荡乳欲伦交换H在线观看 | 蜜桃综合 | 草久在线视频 | 四虎在线视频 | 伊人久久精品久久亚洲一区 | 久久宗合色| 免费无码一区二区三区A片18 | 99国产午夜精品一区二区 | 99热这里只有精品8 99热这里只有精品9 | 国产中文字幕久久 | 亚洲 自拍 另类 欧美 综合 | 另类图片 亚洲 | 天天色综合天天 | 2020年日本高清一卡二卡三卡四卡 | 日本人丰满xxxxhd | 九九九99品牌的特色产品 | 一区二区三区精品牛牛 | 黄毛片免费| 国产A国产国产片 | 国产麻豆精品乱码一区 | 特级做A爰片毛片A片免费 | 香蕉综合视频 | 国产福利美女福利视频免费看 | 97精品视频 | 久久国产精品自线拍免费 | 天美传媒在线观看 | 96在线看片免费视频国产 | 一级毛片不卡片免费观看 | 第一区| 在线亚洲v日韩v | 三级不卡 | 国产精品久久久久福利网站 | 亚洲精品久久202420247 | 久久综合久久鬼 | 久久精品国产久精国产 | 国师受被肉到失禁各种PLAY | 中文字幕在线免费观看视频 | 在线看b| 99久久精品免费观看区一 | 成人酒色网 | 国产成年无码V片在线 | 96精品专区国产在线观看高清 | 亚洲国产中文字幕在线观看 | 九九热精品免费观看 | 欧美日本日韩 | 亚洲国产高清精品线久久 | 国产成人自产拍免费视频 | 国产一区二区三区不卡在线观看 | 最后的朋友结局 | 日本丰满人要无码视频 | 免费大黄网站在线观看 | 深夜福利视频导航 | 亚洲国产成人久久一区二区三区 | 毛片内射久久久一区 | 97一期涩涩97片久久久久久久 | 色婷婷我要去我去也 | 一区二区中文字幕在线观看 | 人妻日本无中文字幕无码 | 香港韩国日本三级 | 黄色一级小视频 | 四虎日韩| 浪妇叫床叫的很浪的小说 | 亚洲色噜噜狠狠站欲八 | 伊人成综合网伊人222 | 欧美日韩高清不卡免费观看 | 国产欧美日 | 激情丁香婷婷 | 一本久 | 天天操综合网 | 最爱视频在线直播www | 狠狠a | 成人性生交A片免费看麻豆 成人性生交大片免费看中国A片 | 国产玩弄人妻出轨系列 | 美女图片脱空一点不露 | 成年黄网站免费大全毛片 | 国产精品久久久久久久久免费hd | 亚洲午夜网站 | 无码人妻一区二区久久 | 亚色九九九全国免费视频 | 亚洲色 自拍 偷拍 清纯唯美 | 岛国午夜精品视频在线观看 | 在线看免费大片45分钟 | 日韩不卡手机视频在线观看 | 九九热精品免费观看 | 亚洲人午夜射精精品日韩 | 日韩a级片 | 亚洲人成在线播放无码 | 乱码中字在线观看一二区 | 亚洲成A人无码亚洲成WWW牛牛 | 欧美日本一二三区 | 中文字幕一级毛片视频 | 中文天堂在线观看 | 免费观看又色又爽又黄的小说一 | 人人看人人添人人爽 | 黑人肉大捧进出全过程动态 | 国产午夜精品久久久久九九 | 中文在线最新版天堂 | 国产精品免费露脸视频 | 借贷宝裸照 | 五月丁香婷姐色 | 性做爰添lBB视频免费下载 | 国产精品久久久久久久免费 | 中文字幕第一区 | 久久天天躁夜夜躁狠狠85麻豆 | 国产精品岛国久久久久 | 亚洲精品无码一区二区卧室 | 故宫女模裸拍 | 少妇愉情理伦片丰满丰满午夜小说 | 国产精品免费视频能看 | 国产中文字幕在线 | 97视频免费| 韩国理论疯狂少妇2做爰 | 成人国产欧美大片一区 | 免费做A爰片久久毛片A片 | 欧美激情亚洲一区中文字幕 | 亚洲国产精品成人综合久久久 | 哇又长又大又硬太爽了 | 樱花草视频在线观看WWW在线观看 | 免费黄毛片 | 51精品视频免费国产专区 | 丁香婷婷色 | 国产精品久久人妻无码电影张丽 | 三级毛片在线看 | 99精品久久99久久久久久 | 国产精品国产三级国AV在线观看 | 疯狂的少妇2做爰完整版韩国 | 奇米777视频国产 | 免费看大黄高清网站视频在线 | 不卡中文| 国产免费a | 波多野结衣xfplay在线观看 | 坐在男人嘴上让他添在线视频 | 欧美精品久久 | 国产自国产自愉自愉免费24区 | 日韩一区二区超清视频 | 欧美成人家庭影院 | 日韩波多野结衣 | 最新亚洲一区二区三区四区 | 韩国三级香港三级日本三级 | 91精品导航在线网址 | 日韩一卡2卡3卡4卡乱码网站导航 | 大尺度做爰啪啪高潮床戏小说 | 四虎影视免费完整版在线观看 | 日日噜噜夜夜狠狠扒开双腿 | 青草国内精品视频在线观看 | 日韩精品欧美在线视频在线 | 国产一级一级一级国产片 | 午夜福利自怕 | 欧美激情二区 | 亚洲天堂在线观看完整版 | 99re国产 | 性xxxx欧美高清 | 日本老熟五十路息孑安野由美 | 久久天天躁夜夜躁狠狠85麻豆 | 鸭王精品一区二区 | 日本 韩国 亚洲 欧美 在线 | 国产成人无精品久久久久国语 | 国产极品JK白丝喷白浆免费视频 | 亚洲AV成人天堂影院 | 亚洲人成色777777精品音频 | 精品一区二区三区免费观看 | 熟女人妻精品一区二区三 | 中文字幕精品视频在线观看 | 国产精品一区二区三区高清在线 | 公么征服我完整版中文 | 黄色特级毛片 | 神秘感染1在线观看高清完整免费观看 | 99久久国产综合精品女不卡 | 国产在线天堂a v | 亚洲娇小性xxxx | 亚洲男人的天堂A片我要看 亚洲免费久久 | 另类免费视频 | 亚洲色妞 | 熟女人妻一区二区三区视频 | 雨宫琴音qvod| 久久精品一区二区 | 十九天未删减在线观看 | 日韩成人免费 | A片做爰片仑理片免费看 | 影音先锋中文字幕无码资源站 | 亚洲欧美日韩中文加勒比 | 日韩欧美一区二区无码免费 | 久久99国产一区二区三区 | 香蕉AV久久一区二区三区 | 玫瑰之战免费观看全集在线 | 熟妇的荡欲色综合亚洲图片 | 成人亚洲欧美日韩在线观看 | 亚洲欧美久久久久久久久久爽 | 亚洲欧美韩国综合色 | 国产无码av | 草莓视频福利院 | 最近免费2019中文字幕大全 | 一区二区视频传媒有限公司 | 一区二区三区四区在线 | 国产刺激熟女短视频在线观看 | 天天综合亚洲国产色 | 看真人视频一级毛片 | 午夜精品九九九九99蜜桃 | 99re6国产精品免费播放 | 午夜男人视频 | 亚洲欧美国产双大乳头 | 中文字幕亚洲乱码熟女在线 | 免费毛片手机在线播放 | 欧美女人xx| 国产日产人妻精品精品 | 99久久精品国产一区二区成人 | 国产专区中文字幕 | 国产人妻久久精品二区三区老狼 | 国语普通话对白CHINESE | 国产成人精品无缓存在线播放 | 久久久综合香蕉尹人综合网 | 亚洲精品深夜AV无码一区二区 | 欧美疯狂做受xxxx | www.免费黄色 | 伦理电影中文字幕韩国在线观看 | 国产精品久久久久久久网站 | 99国产精品人妻无码一区 | 超碰老师97zyz资源总站 | 丰满少妇夜夜爽爽高潮水 | 把娇妻借给朋友泄欲4 | 婷婷丁香在线 | 亚洲图片欧美文学小说激情 | 国产成人久久777777 | 欧美无人区码卡二卡3卡4乱码 | 国产极品JK白丝喷白浆在 | 激情综合色综合啪啪开心 | 国产乱码卡二卡三卡老狼在线观看 | av综合网| 日本 韩国 亚洲 欧美 在线 | 91免费视频网 | 爱豆传媒在线观看视频 | 久久草在线视频国产一 | 国产色婷婷亚洲99精品 | 九九国产视频 | 和邻居交换做爰伦理 | 日本黄页视频 | 99国产揄拍国产精品人妻蜜 | 国产老女人一区二区A片 | 国偷自产AV一区二区三区蜜臀 | 苏伊士运河堵物价涨 | 樱花草无码专区日本 | 四虎免费在线观看视频 | 美国一级黄色毛片 | 色播在线电影 | 国产jizzjizz视频免费看 | 无人在线观看免费高清直播视频 | 狠狠色噜噜狠狠狠狠69 | 久草最新网址 | 一女被两根凶猛挺进动态图 | 永久午夜福利视频一区在线观看 | 日本aa视频 | 美日韩一区二区三区 | 欧美一级网 | 97国产精东麻豆人妻电影 | 人妻洗澡被强伦姧完整国产 | 久久免费视频精品 | 91九色视频无限观看免费 | 丁香五月亚洲春色 | 欧美日韩免费在线观看 | 亚洲欧美在线观看 | 亚洲性线免费观看视频成熟 | 欧美乱妇色情大片在线观看免费 | 性瘾荡乳H古代 | a级精品九九九大片免费看 a级精品国产片在线观看 | 中文字幕无线观看高清 | 好男人午夜影院 | 在线视频www777788coom | 婷婷免费视频 | 国产在线观看免费视频软件 | 3d肉 蒲团| 亚洲精品又粗又大又爽A片 亚洲精品一区无码A片 | 一个色综合国产色综合 | 又硬又粗进去好爽A片欧美 又硬又粗进去好爽A片天美APP | 激情综 | 精品偷拍在线一区二区 | 人妻熟女斩五十路0930 | 草草影院地址发布页ccyycom | 免费看人与动人物XXXX | 久久国产毛片 | 精品欧美一区二区三区久久久 | 国产三级做爰在线播放 | 日本理论片和搜子同居的日子GOOD | 亚洲99精品A片久久久久久 | 国产极品精频在线观看 | 成人乱码一区二区三区A片 成人乱人乱一区二区三区 成人区人妻精品一区二欧美毛片 | 涩涩伊人久久无码欧美 | 老色网站| 巨乳波霸在线中文字幕 | 中文字幕国产视频 | 我就色色综合网 | 国产一区二区三区内射高清 | 一级α一级α片免费观看网站 | 品色阁| 日韩一区二区三区在线播放 | 五月色播先锋在线丁香 | 国产精品久久人妻无码A片 国产精品久久欧美一区 | 国产真实老熟女无套内射 | 国精产品999国精产品官网 | 久久这里精品青草免费 | 一本到12不卡视频在线dvd | 久久精品视频在这里16 | 美国一级毛片免费看成人 | 成年女人免费看一级人体片 | 国产男人午夜视频在线观看 | 性一交一乱一美A片裸体 | 巨肉超污巨黄H文小短文双男 | 欧美区日韩区 | 夜夜操天天干 | 天天综合网色中文字幕 | 麻豆传媒在线完整视频免费 | 日韩在线一区二区三区视频 | 国产精品路线1路线2路线 | 不卡三级 | 无遮挡国产高潮视频免费观看 | 一本久道久久综合久久鬼色 | 波多野吉衣一区二区三区四区 | 四虎影视国产精品永久在线 | 娇妻被交换粗又大又硬视频 | 精品成人无码A片免费软件 精品AV综合一区二区三区 | 8x国产精品视频 | 91po国产在线高清福利 | 九九九精品午夜在线观看 | 在线天堂中文字幕 | 亚洲综合精品香蕉久久网97 | 婷婷开心激情综合五月天 | 精品久久久久成人码免费动漫 | 欧美老熟妇又粗又大 | 黄色免费网站在线观看 | 欧美A级肉欲大片XXX | 少妇被多人C夜夜爽爽 | 国精品人妻无码一区二区三区软件 | 久热re在线视频精品免费 | 99视频精品免费99在线 | 当着闺蜜的面被抽插后入小说 | 亚洲国产精品嫩草影院在线观看 | 2021年无线乱码高清播放 | 大地影院日本韩国电影免费观看 | 成人首页 | 亚洲有码区 | 伊人久色 | 一区二区三区日韩免费播放 | 三级黄色片网站 | 美女被免费喷白浆视频 | 日本一区二区三区精品国产 | 女人下边被添全过程A片图片 | 国产精品乱码久久久久软件 | 麻豆传媒在线完整视频免费 | 色狠狠干 | 中文字幕高清免费不卡视频 | 最近高清无吗免费看 | 伊人久久精品久久亚洲一区 | 国产成人18黄网站在线观看网站 | 综合精品欧美日韩国产在线 | 啊灬啊别停灬用力啊免费视频 | 国产免费又黄又爽又色的小说 | 成人窝窝午夜看片 | 天天干天天玩 | 91产国天堂游戏 | ふたりの兄嫁 | 欧美另类久久久精品 | 玫瑰之战电视剧免费 | 日韩免费在线播放 | 国产精品资源站 | 亚洲欧美中文日韩v在线 | 欧美一区二区三区红桃小说 | 欧美精品一区二区三区在线播放 | 亚洲国产艾杏在线观看 | 久久99这里只精品热在线 | 午夜视频在线免费观看 | 国产一级黄| 豪门的YIN荡生活 | 免费国产黄色片 | 色久久综合视频本道88 | 天天操中文字幕 | 最近免费高清版电影在线观看 | 深夜福利一区二区 | 国产黄色片免费看 | 久久久无码精品一区二区三区 | 亚洲视频一区二区在线观看 | 午夜免费福利小电影 | 男女久久久视频2024 | 国产在线综合色视频 | 日日撸网站 | 伦理片在线线249 | 很狠撸| 真实国产精品视频国产网 | 中文字幕视频在线播放 | 五月婷婷六月综合 | 精品少妇一区二区三区A片 精品日本亚洲一区二区三区 | 国产加勒比| 69精品人人人人人人人人人 | 欧美精品一卡二卡 | 午夜网站在线观看免费网址免费 | 国产午夜成人AV在线播放 | gay男打屁股视频网站 | 亚洲欧美一级久久精品 | 久久国产偷 | 亚洲精品久久久久高潮 | 久久9999国产精品免费 | 人妻丰满熟妇V无码区A片免费看 | 欲妇荡岳丰满少妇A片24小时 | 女人十八毛片A片久久18 | 粉嫩AV国产一区二区三区 | 亚洲精品一区二区绿巨人 | 日韩福利视频 | 国产精品久久久久久人妻精品A片 | 性一乱一交一A片视频 | 久久精品免费视频观看 | 久久久综合九色合综国产 | 99精品与95优品| 国产午夜永久福利视频在线观看 | 偷拍自伦2018 | 91在线播放视频 | 最近中文字幕高清中文字幕无 | 欧美激情视频二区三区 | 国产精品美女久久久网站动漫 | 强壮公次次弄得我好爽A片 强壮公弄得我次次A片 | 野花社区WWW中文高清版 | 六月丁香 五月婷婷小说 | 精品视频2024在线视频 | 嗯男人r啊唔h哈 | 日韩经典欧美精品一区 | 欧美综合图区亚洲综合图区69 | 国产高清自拍 | 久久九九免费 | www.四色| 国产精品亚洲污污网站入口 | 成人福利在线 | 酷狗2011正式版下载 | 日韩中文有码高清 | 亚洲欧美一区二区三区导航 | 在线播放一区二区 | 最近免费中文字幕MV | 国产婷婷色综合AV蜜臀AV | 91视频蝌蚪 | 欧美疯狂做爰XXXX高潮 | 国产精品视频第一区二区三区 | www.毛片在线观看 | 人成乱码一卡二卡三四卡五卡六卡 | 久久久国产99久久国产一 | 国产精品久久久久无码人妻网站 | 香港理论 | 色五月小说 | 果冻传媒mv国产破解 | 视频一区在线免费观看 | 成人福利院| 亚洲影视在线 | 教官嗯给我快添嗯哪啊视频 | 亚洲一区二区色情苍井空 | 99热免费在线 | 色欲AV蜜臀AV在线观看麻豆 | 欧美另类色图片 | 国产精品A一区二区三区腾讯导航 | 亚洲v欧美 | 人妻丰满精品一区二区A片 人妻换人妻AA视频 人妻激情综合久久久久蜜桃 | 免费精品国偷自产在线在线 | 欧美日韩高清一区二区三区 | 成人片在线播放 | 亚洲精品国产一区二区精华液 | 青草视频在线免费 | 老司机精品视频一区二区 | 日本国产最新一区二区三区 | 国产精品视频一区牛牛视频 | 国产乱码精品一区二区三区四川人 | 欧美黄色精品 | 五月婷婷深爱 | 日本又色又爽又黄的A片在线电影 | 国产精品高清视亚洲一区二区 | jizz孕妇孕交 | 国产成年 | 爽欲亲伦小说 | 国产玖玖视频 | 久久国产精品99国产精 | 色情欧美片午夜国产特黄 | 嗯灬啊灬把腿张开灬A片视频网站 | 内射囯产旡码丰满少妇 | 成人午夜福利视频镇东影视 | 欧美激情一区二区三区 | 国产精品 中文字幕 亚洲 欧美 | 中文字幕一区精品欧美 | 国产又粗又大又爽的A片精华液 | 国产午夜精品理论片在线 | 色综合久久久高清综合久久久 | 韩国精品一区二区三区四区五区 | 美女伊人网| 国产精品高潮呻吟AV久久动漫 | 97视频制服无码 | 成人A片动漫无码免费播放 成人A片免费看男人社区 | 免费观看久久 | 无人视频在线观看免费播放下载 | 四虎免费在线观看视频 | 日本天天操 | 国产1级 | 二次元美女开腿污裸体 | 亚洲无专砖码直接进入 | 婷婷开心中文字幕 | 婷婷丁香在线 | 国产一区二区久久 | 免费在线黄色电影 | WWW国产精品人妻一二三区 | WW欧日韩视频高清在线 | 99精品久久精品一区二区小说 | 国产亚洲精品久久精品69 | 成人久久18免费网 | 国精品午夜福利视频不卡麻豆 | 四房播播在线电影 | 免费观看又色又爽又黄的校园 | 欧美三级视频在线观看 | 亚洲AV久久无码精品九九小说 | 久久精品视频网站 | 免费看影片的网站入口 | 天堂网2016| 国产人澡人澡澡澡人碰视频 | 日韩欧美在线视频一区二区 | 亚洲AV久久无码精品国产网站 | 黄色网址网站在线观看 | 亚洲中文字幕无码一去台湾 | 日韩视频在线观看中字 | 国产精品欧美亚洲日本综合 | 777久久| 无码日韩人妻精品久久蜜桃免费 | 老牛无码人妻精品1国产 | 中文字幕一区波多野结衣 | 99国产在线 | 好大老师好爽快点深一点动漫 | 97亚洲狠狠色综合久久位 | 91国在线国内在线播放 | 国产精品久久国产国精品 | 国产免费观看视频 | 国产免费播放一区二区 | 福利区体验区120秒免费 | 妻友视频 | 国产亚洲精品久久久久久一区二区 | 九九久久香港经典三级精品 | 亚洲国产成人资源在线软件 | 97免费视频观看 | 色播.com | 欧美日韩在线视频不卡一区二区三区 | 久久精品国产久精国产果冻传媒 | 婷婷成人丁香五月综合激情 | 亚洲97| 精品91一区二区三区 | 欧美日韩第一区 | 91久久香蕉国产线看观看软件 | 毛片免费网 | www.av小视频 | 国产视频xxxx | 国产专区91 | 久久久综合九色综合中文字幕 | 国产小视频国产精品 | 99综合色| 日韩精品在线观看视频 | 久久香蕉精品视频 | 中文字幕 一区 婷婷 在线 | 在线免费成人电影 | 日韩色情无码一本二本三本 | 五月天婷婷影院 | 无码专区aaaaaa免费视频 | 一级一级毛片看看 | 成人a在线| 欧美综合图区亚洲综合图区69 | 亚洲精品深夜AV无码一区二区 | 人妻精品国产一区二区 | 日本黄页网站在线观看 | 国产精品福利电影 | 免费高清毛片天天看 | 韩国三级香港三级日本三级la | 色爱影院| 国产成人综合久久精品下载 | 日韩一区二区三区射精-百度 | 欧美精品第三页 | 免费观看亚洲视频 | 国产精品视频导航 | 久久精品热2018 | 最近免费中文字幕高清大全 | 成人片免费观看WWW 成人免费在线电影 | 欧美AAAAAA级午夜福利视频 | 伦理片天堂eeuss影院2o12 | 成人黄色一级片 | 色婷婷色丁香 | 亚洲国产美女免费视频 | 欧美日本一道免费一区三区 | 兽交另类人妻素人 | 午夜视频免费在线观看 | 中文字幕乱码人在线视频1区 | 国精品午夜福利视频不卡麻豆 | 日韩亚洲国产中文字幕欧美 | 国产一级一片免费播放刺激 | 久久精品这里是免费国产 | 射精区-区区三区 | 欧美成人精品一区二区免费 | 日日噜噜噜噜人人爽亚洲精品 | 欧美一区二区三区高清视频 | 国产99在线| 真实国产乱子伦视频对白 | 国产精品原创永久在线观看 | 窝窝午夜看片成人精品 | 丁香婷婷综合激情五月色 | 国产老女人一区二区A片 | 好大好硬使劲脔我爽视频 | 国产清纯91天堂在线观看 | 人妻丰满精品一区二区A片 人妻换人妻AA视频 人妻激情综合久久久久蜜桃 | 日本成人高清 | 色婷婷激婷婷深爱五月小说 | 欧美黑人性黑人猛交视频 | 免费一级夫妻a | 亚洲日韩精品射精日 | 啊灬啊灬啊灬快灬A片免费直拍 | 天天澡天天干 | 日韩欧美色 | 女人色极品影院 | 影视先锋av资源站男人 | 中文字幕2区 | 中出内射颜射骚妇 | 麻花传媒MV一二三区别在哪里看 | 国产无套内射久久久国产 | 久草中文视频 | 亚洲欧洲日韩极速播放 | 久久在热照片免费 | 久久无码潮喷A片无码高潮动漫 | 久久精品亚洲欧美日韩久久 | 国色一卡2卡3卡4卡在线新区 | 久久99久久成人免费播放 | 极品美女扒开粉嫩小泬图片 | 97国产在线视频 | 亚洲最新永久在线观看 | 国产手机在线视频 | 日韩精品一区二区三区中文字幕 | 欧美视频在线观看免费最新 | 无码人妻中文在线佐佐木明希 | 四虎影视库免费永久视频 | 久久精品国产99国产精品 | 久青草国产手机在线视频 | 天天做天天干 | 欧美日韩免费一区二区三区 | 亚洲成熟女人毛毛耸耸多 | 伊人久久久久久久久久 | 欧美性生交大片免费看A片 欧美性生交大片免费看A片免费 | 国产JIZZ中国JIZZ免费看 | 精品国产成人 | 国内高清自拍 | 中文字幕AV在线一二三区 | 波多野吉衣一区二区 | 麻豆国产AV尤物网站尤物 | hd最新国产人妖ts视频 | 激情丁香开心久久综合 | 天堂√在线中文资源网 | 亚洲毛片大全 | 久久国产欧美日韩精品免费 | 国产69成人免费视频观看 | 国产成人亚洲综合91精品555 | 麻豆文化传媒一区二区 | 性xxxxxxx欧美胖老太肥肥 | jvid精品视频极品美女 | 日韩吃奶摸下AA片免费观看 | 亚洲永久| 久久精品国产无限资源 | 99r在线 | 18成人在线观看 | 2024精品手机国产品在线 | 麻豆视频传媒入口 | 亚洲欧美日韩国产一区图片 | 小明永久成人一区二区 | 久久精品全国免费观看国产 | 天天草综合网 | 国产婷婷午夜精品无码A片 国产婷婷色综合AV蜜臀AV | 精品久久久爽爽久久久AV | 狠狠色丁香久久婷婷综合丁香 | 日本不卡一区二区三区 最新 | 一起探恋爱综艺在线观看第七期 | 午夜激情影院 | 狠狠色影院 | 乱码欧美一卡2卡3卡4 | 久久www成人看片 | 免费看到湿的小黄文软件APP | 中文字字幕在线中文乱码2019 | 免费无码AV色情在线 | 免费大片在线观看视频网站 | 欧美日本一道道一区二区三 | 国内精品乱码卡一卡2卡三卡新区 | 天堂中文字幕在线 | 久久久香蕉视频 | 日韩不卡在线视频 | 成长电视剧全集 | 第四色 成人 官网 | 丁香综合激情 | 激情丁香开心久久综合 | 澳门在线高清一级毛片 | 神马电影dy888午夜我不卡 | 亚洲国产综合另类视频 | 天天干夜夜想 | 在线网站黄 | 在线 国产 欧美 专区 | 久久这里只有精品6 | 人妻被下春药中文字幕 | 日本爽爽爽爽爽爽免费视频 | 动漫在线观看片A免费观看 法国艳妇LARALATEXD | 国产亚洲精品品视频在线 | 99热视| 国产老师开裆丝袜喷水漫画 | 风流少妇A片一区二区蜜桃 风流少妇与黑人做爰 | 国产亚洲精品久久久久久一区二区 | 午夜影院06o6tv| 日本女人下面毛茸茸 | 日本午夜影院 | 国产二级一片内射视频插放 | 91精品国产综合久久婷婷 | 丝瓜app下载网址进入安卓免费 | 秋霞韩国伦理电线看 | 五月亭亭免费高清在线 | 国产亚洲精品美女 | 在线观看www日本免费网站 | 久久久久久久国产视频 | 亚洲成年网站 | 强壮公次次弄得我好爽A片 强壮公弄得我次次A片 | 三级黃色男人的天堂 | 日本高清不卡中文字幕 | 日本二区免费一片黄2019 | 啪啪小说网 | 亚洲AV久久无码精品热九九 | 亚洲天堂.com| 种地吧少年第一季 | 最近高清中文字幕无吗免费看 | 国产福利在线看 | 成人黄性视频 | 日韩一卡2卡3卡4卡无卡免费视频 | 亚洲欧美二区三区久本道 | 狠狠色狠狠色综合日日92 | 97精品久久久久中文字幕 | 亚洲欧美国产旡码专区 | 久久永久免费视频 | 国产色精品久久人妻无码看片 | 神马影院在线eecss伦理片 | 又粗又大内射免费视频小说 | 精品动漫一区二区无遮挡 | 久久91精品国产91久久户 | 亚洲蜜桃AV色情精品成人 | 一起来看流星雨在哪拍的 | A国产一区二区免费入口 | 丁香花免费观看高清电影 | 日韩一级一欧美一级国产 | 亚洲AV无码乱码A片无码蜜桃 | 国产偷拍一极视频 | 国产电影在免费播放在线观看 | 好看的网站 你懂的 | 欧美日韩国产中文高清视频 | www.香蕉| 樱花草无码专区日本 | 人妻超级精品碰碰在线97视频 | 日本欧美一区二区三区片 | 国产三区在线成人AV | 精品卡一卡二卡三国色天香 |