日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

Linux下串口编程入门

發布時間:2025/4/5 62 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Linux下串口编程入门 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1. 串口簡介

串行口是計算機一種常用的接口,具有連接線少,通訊簡單,得到廣泛的使用.常用的串口是 RS-232-C 接口(又稱 EIA RS-232-C)它是在 1970 年由美國電子工業協會(EIA)聯合貝爾系統、 調制解調器廠家及計算機終端生產廠家共同制定的用于串行通訊的標準.它的全名是"數據終端設備(DTE)和數據通訊設備(DCE)之間串行二進制數據交換接口技術標準"該標準規定采用一個 25 個腳的 DB25 連接器,對連接器的每個引腳的信號內容加以規定,還對各種信號的電平加以規定.傳輸距離在碼元畸變小于 4% 的情況下,傳輸電纜長度應為 50 英尺.

Linux 操作系統從一開始就對串行口提供了很好的支持,本文就 Linux 下的串行口通訊編程進行簡單的介紹,如果要非常深入了解,建議看看本文所參考的 《Serial Programming Guide for POSIX Operating Systems》

計算機串口的引腳說明

序號信號名稱符號流向功能
2發送數據TXDDTE→DCEDTE發送串行數據
3接收數據RXDDTE←DCEDTE 接收串行數據
4請求發送RTSDTE→DCEDTE 請求 DCE 將線路切換到發送方式
5允許發送CTSDTE←DCEDCE 告訴 DTE 線路已接通可以發送數據
6數據設備準備好DSRDTE←DCEDCE 準備好
7信號地  信號公共地
8載波檢測DCDDTE←DCE表示 DCE 接收到遠程載波
20數據終端準備好DTRDTE→DCEDTE 準備好
22振鈴指示RIDTE←DCE表示 DCE 與線路接通,出現振鈴

?

?

?

?

?

?

?

?

2. 串口操作

串口操作需要的頭文件

1 #include <stdio.h> /*標準輸入輸出定義*/ 2 #include <stdlib.h> /*標準函數庫定義*/ 3 #include <unistd.h> /*Unix 標準函數定義*/ 4 #include <sys/types.h> 5 #include <sys/stat.h> 6 #include <fcntl.h> /*文件控制定義*/ 7 #include <termios.h> /*PPSIX 終端控制定義*/ 8 #include <errno.h> /*錯誤號定義*/

3. 打開串口

Linux系統上一般有一個或者多個串口,而這些串口設備文件名字比較奇怪,如比下面這樣

操作系統串口1串口2USB/RS-232轉換器
WindowsCOM1COM2-
Linux/dev/ttyS0/dev/ttyS1/dev/ttyUSB0

?

?

?

因為串口和其他設備一樣,在類Unix系統中都是以設備文件的形式存在的,所以,理所當然得你可以使用open(2)系統調用/函數來訪問它.但Linux系統中卻有一個稍微不方便的地方,那就是普通用戶一般不能直接訪問設備文件.你可以選擇以下方式做一些調整,以便你編寫的程序可以訪問串口.

  • 改變設備文件的訪問權限設置 [#cd9bd1e0]
  • 以root超級用戶的身份運行程序 [#kdd0e577]
  • 將你的程序編寫位setuid程序,以串口設備所有者的身份運行程序 [#s7b703ff]

OK.假如你已經準備好了讓串口設備文件可以被所有用戶訪問,你可以在Linux系統中實驗一下下面這個程序,它可以打開計算機的串口1.

1 int fd; 2 /*以讀寫方式打開串口*/ 3 fd = open( "/dev/ttyS0", O_RDWR | O_NOCTTY | O_NDELAY);
4 if (-1 == fd){
5 /* 不能打開串口一*/
6 perror(" 提示錯誤!");
7 }

打開串口連接的時候,程序在open函數中除了Read+Write模式以外還指定了兩個選項;

標志O_NOCTTY可以告訴UNIX這個程序不會成為這個端口上的“控制終端”.如果不這樣做的話,所有的輸入,比如鍵盤上過來的Ctrl+C中止信號等等,會影響到你的進程.而有些程序比如getty(1M/8)則會在打開登錄進程的時候使用這個特性,但是通常情況下,用戶程序不會使用這個行為.

O_NDELAY標志則是告訴UNIX,這個程序并不關心DCD信號線的狀態——也就是不關心端口另一端是否已經連接.如果不指定這個標志的話,除非DCD信號線上有space電壓否則這個程序會一直睡眠.

4. 設置串口

最基本的設置串口包括波特率設置,效驗位和停止位設置.

很多系統都支持POSIX終端(串口)接口.程序可以利用這個接口來改變終端的參數,比如,波特率,字符大小等等.要使用這個端口的話,你必須將<termios.h>頭文件包含到你的程序中.這個頭文件中定義了終端控制結構體和POSIX控制函數.

與串口操作相關的最重要的兩個POSIX函數可能就是tcgetattr(3)和tcsetattr(3).顧名思義,這兩個函數分別用來取得設設置終端的屬性.調用這兩個函數的時候,你需要提供一個包含著所有串口選項的termios結構體,串口的設置主要是設置struct termios結構體的各成員值.

成員描述
c_cflag控制選項
c_lflag行選項
c_iflag輸入選項
c_oflag輸出選項
c_cc控制字符
c_ispeed輸入波特率(NEW)
c_ospeed輸出波特率(NEW)

?

?

?

?

?

?

?

?

通過termio結構體的c_cflag成員可以控制波特率,數據的比特數,parity,停止位和硬件流控制,下面這張表列出了所有可以使用的常數

常量描述
CBAUDBit mask for baud rate
B00 baud (drop DTR)
B5050 baud
B7575 baud
B110110 baud
B134134.5 baud
B150150 baud
B200200 baud
B300300 baud
B600600 baud
B12001200 baud
B18001800 baud
B24002400 baud
B48004800 baud
B96009600 baud
B1920019200 baud
B3840038400 baud
B5760057,600 baud
B7680076,800 baud
B115200115,200 baud
EXTAExternal rate clock
EXTBExternal rate clock
CSIZEBit mask for data bits
CS55 data bits
CS66 data bits
CS77 data bits
CS88 data bits
CSTOPB2 stop bits (1 otherwise)
CREADEnable receiver
PARENBEnable parity bit
PARODDUse odd parity instead of even
HUPCLHangup (drop DTR) on last close
CLOCALLocal line - do not change "owner" of port
LOBLKBlock job control output
CNEW_RTSCTS/CRTSCTSEnable hardware flow control (not supported on all platforms)

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

在傳統的POSIX編程中,當連接一個本地的(不通過調制解調器)或者遠程的終端(通過調制解調器)時,這里有兩個選項應當一直打開,一個是CLOCAL,另一個是CREAD.這兩個選項可以保證你的程序不會變成端口的所有者,而端口所有者必須去處理發散性作業控制和掛斷信號,同時還保證了串行接口驅動會讀取過來的數據字節.

波特率常數(CBAUD,B9600等等)通常指用到那些不支持c_ispeed和c_ospeed成員的舊的接口上.后面文章將會提到如何使用其他POSIX函數來設置波特率.

千萬不要直接用使用數字來初始化c_cflag(當然還有其他標志),最好的方法是使用位運算的與或非組合來設置或者清除這個標志.不同的操作系統版本會使用不同的位模式,使用常數定義和位運算組合來避免重復工作從而提高程序的可移植性.

波特率設置

不同的操作系統會將波特率存儲在不同的位置.舊的編程接口將波特率存儲在上表所示的c_cflag成員中,而新的接口實裝則提供了c_ispeed和c_ospeed成員來保存實際波特率的值.

程序中可是使用cfsetospeed(3)和cfsetispeed(3)函數在termios結構體中設置波特率而不用去管底層操作系統接口.下面的代碼是個非常典型的設置波特率的例子.

1 struct termios options; 2 3 /* 4 * Get the current options for the port... 5 */ 6 tcgetattr(fd, &options); 7 /* 8 * Set the baud rates to 19200... 9 */ 10 cfsetispeed(&options, B19200); 11 cfsetospeed(&options, B19200); 12 13 /* 14 * Enable the receiver and set local mode... 15 */ 16 options.c_cflag |= (CLOCAL | CREAD); 17 18 /* 19 * Set the new options for the port... 20 */ 21 tcsetattr(fd, TCSANOW, &options);

函數tcgetattr(3)會將當前串口配置回填到termio結構體option中.然后,程序設置了輸入輸出的波特率并且將本地模式(CLOCAL)和串行數據接收(CREAD)設置為有效,接著將新的配置作為參數傳遞給函數tcsetattr(3).常量TCSANOW標志所有改變必須立刻生效而不用等到數據傳輸結束.其他另一些常數可以保證等待數據結束或者刷新輸入輸出之后再生效.

常量描述
TCSANOWMake changes now without waiting for data to complete
TCSADRAINWait until everything has been transmitted
TCSAFLUSHFlush input and output buffers and make the change

?

?

?

?

不同的系統上可能支持不同的輸入輸出速度,所以,通過串口連接兩臺機器或者設備的時候,應該將波特率設置成兩者中較小的那個,即MIN(speed1, speed2).

設置字符大小

設置字符大小的時候,這里卻沒有像設置波特率那么方便的函數.所以,程序中需要一些位掩碼運算來把事情搞定.字符大小以比特為單位指定:

1 options.c_flag &= ~CSIZE; /* Mask the character size bits */ 2 options.c_flag |= CS8; /* Select 8 data bits */

設置奇偶校驗和停止位

與設置字符大小的方式差不多,這里仍然需要組合一些位掩碼來將奇偶校驗設為有效和奇偶校驗的類型.UNIX串口驅動可以生成even,odd和no parity位碼.設置space奇偶校驗需要耍點小手段.

  • No parity (8N1)
1 options.c_cflag &= ~PARENB 2 options.c_cflag &= ~CSTOPB 3 options.c_cflag &= ~CSIZE; 4 options.c_cflag |= CS8;
  • Even parity (7E1)
1 options.c_cflag |= PARENB 2 options.c_cflag &= ~PARODD 3 options.c_cflag &= ~CSTOPB 4 options.c_cflag &= ~CSIZE; 5 options.c_cflag |= CS7;
  • Odd parity (7O1)
1 options.c_cflag |= PARENB 2 options.c_cflag |= PARODD 3 options.c_cflag &= ~CSTOPB 4 options.c_cflag &= ~CSIZE; 5 options.c_cflag |= CS7;
  • Space parity is setup the same as no parity (7S1)
1 options.c_cflag &= ~PARENB 2 options.c_cflag &= ~CSTOPB 3 options.c_cflag &= ~CSIZE; 4 options.c_cflag |= CS8; 設置效驗的函數實例: 1 /** 2 *@brief 設置串口數據位,停止位和效驗位 3 *@param fd 類型 int 打開的串口文件句柄 4 *@param databits 類型 int 數據位 取值 為 7 或者8 5 *@param stopbits 類型 int 停止位 取值為 1 或者2 6 *@param parity 類型 int 效驗類型 取值為N,E,O,,S 7 */ 8 int set_Parity(int fd,int databits,int stopbits,int parity) 9 { 10 struct termios options; 11 if ( tcgetattr( fd,&options) != 0) { 12 perror("SetupSerial 1"); 13 return(FALSE); 14 } 15 options.c_cflag &= ~CSIZE; 16 switch (databits) /*設置數據位數*/ 17 { 18 case 7: 19 options.c_cflag |= CS7; 20 break; 21 case 8: 22 options.c_cflag |= CS8; 23 break; 24 default: 25 fprintf(stderr,"Unsupported data size\n"); return (FALSE); 26 } 27 switch (parity) 28 { 29 case 'n': 30 case 'N': 31 options.c_cflag &= ~PARENB; /* Clear parity enable */ 32 options.c_iflag &= ~INPCK; /* Enable parity checking */ 33 break; 34 case 'o': 35 case 'O': 36 options.c_cflag |= (PARODD | PARENB); /* 設置為奇效驗*/ 37 options.c_iflag |= INPCK; /* Disnable parity checking */ 38 break; 39 case 'e': 40 case 'E': 41 options.c_cflag |= PARENB; /* Enable parity */ 42 options.c_cflag &= ~PARODD; /* 轉換為偶效驗*/ 43 options.c_iflag |= INPCK; /* Disnable parity checking */ 44 break; 45 case 'S': 46 case 's': /*as no parity*/ 47 options.c_cflag &= ~PARENB; 48 options.c_cflag &= ~CSTOPB;break; 49 default: 50 fprintf(stderr,"Unsupported parity\n"); 51 return (FALSE); 52 } 53 /* 設置停止位*/ 54 switch (stopbits) 55 { 56 case 1: 57 options.c_cflag &= ~CSTOPB; 58 break; 59 case 2: 60 options.c_cflag |= CSTOPB; 61 break; 62 default: 63 fprintf(stderr,"Unsupported stop bits\n"); 64 return (FALSE); 65 } 66 /* Set input parity option */ 67 if (parity != 'n') 68 options.c_iflag |= INPCK; 69 tcflush(fd,TCIFLUSH); 70 options.c_cc[VTIME] = 150; /* 設置超時15 seconds*/ 71 options.c_cc[VMIN] = 0; /* Update the options and do it NOW */ 72 if (tcsetattr(fd,TCSANOW,&options) != 0) 73 { 74 perror("SetupSerial 3"); 75 return (FALSE); 76 } 77 return (TRUE); 78 }

需要注意的是:

如果不是開發終端之類的,只是串口傳輸數據,而不需要串口來處理,那么使用原始模式(Raw Mode)方式來通訊,設置方式如下:

1 options.c_lflag &= ~(ICANON | ECHO | ECHOE | ISIG); /*Input*/ 2 options.c_oflag &= ~OPOST; /*Output*/

設置硬件流控制

某些版本的UNIX系統支持通過CTS(Clear To Send)和RTS(Request To Send)信號線來設置硬件流控制.如果系統上定義了CNEW_RTSCTS和CRTSCTS常量,那么很可能它會支持硬件流控制.使用下面的方法將硬件流控制設置成有效:

1 options.c_cflag |= CNEW_RTSCTS; /* Also called CRTSCTS

將它設置成為無效的方法與此類似:

1 options.c_cflag &= ~CNEW_RTSCTS;

本地設置

本地模式成員變量c_lflag可以控制串口驅動怎樣控制輸入字符.通常,你可能需要通過c_lflag成員來設置經典輸入和原始輸入模式。

ISIGEnable SIGINTR, SIGSUSP, SIGDSUSP, and SIGQUIT signals
ICANONEnable canonical input (else raw)
XCASEMap uppercase \lowercase (obsolete)
ECHOEnable echoing of input characters
ECHOEEcho erase character as BS-SP-BS
ECHOKEcho NL after kill character
ECHONLEcho NL
NOFLSHDisable flushing of input buffers after interrupt or quit characters
IEXTENEnable extended functions
ECHOCTLEcho control characters as ^char and delete as ~?
ECHOPRTEcho erased character as character erased
ECHOKEBS-SP-BS entire line on line kill
FLUSHOOutput being flushed
PENDINRetype pending input at next read or input char
TOSTOPSend SIGTTOU for background output

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

成員變量c_lflag可以使用的常量

選擇經典輸入

經典輸入是以面向行設計的.在經典輸入模式中輸入字符會被放入一個緩沖之中,這樣可以以與用戶交互的方式編輯緩沖的內容,直到收到CR(carriage return)或者LF(line feed)字符.

選擇使用經典輸入模式的時候,你通常需要選擇ICANON,ECHO和ECHOE選項:

1 options.c_lflag |= (ICANON | ECHO | ECHOE);

選擇原始輸入

原始輸入根本不會被處理.輸入字符只是被原封不動的接收.一般情況中,如果要使用原始輸入模式,程序中需要去掉ICANON,ECHO,ECHOE和ISIG選項:

1 options.c_lflag &= ~(ICANON | ECHO | ECHOE | ISIG);

輸入選項

可以通過輸入模式成員c_iflag來控制從端口上收到的字符的輸入過程.與c_cflag一樣,c_iflag的最終值是想要使用的所有狀態的位運算OR的組合.

常量描述
INPCKEnable parity check
IGNPARIgnore parity errors
PARMRKMark parity errors
ISTRIPStrip parity bits
IXONEnable software flow control (outgoing)
IXOFFEnable software flow control (incoming)
IXANYAllow any character to start flow again
IGNBRKIgnore break condition
BRKINTSend a SIGINT when a break condition is detected
INLCRMap NL to CR
IGNCRIgnore CR
ICRNLMap CR to NL
IUCLCMap uppercase to lowercase
IMAXBELEcho BEL on input line too long

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

c_iflag成員可以使用的常量

設置輸入奇偶校驗選項

當程序在c_cflag中設置了奇偶校驗成員(PARENB)的時候,程序就需要將輸入奇偶校驗設置成為有效.與奇偶校驗相關的常量有INPCK,IGNPAR,PARMRK和ISTRIP.一般情況下,你可能需要選擇INPCK和ISTRIP將奇偶校驗設置為有效同時從接收字串中脫去奇偶校驗位:

1 options.c_iflag |= (INPCK | ISTRIP);

IGNPAR是一個比較危險選項,即便有錯誤發生時,它也會告訴串口驅動直接忽略奇偶校驗錯誤給數據放行.這個選項在測試鏈接的通訊質量時比較有用而通常不會被用在實際程序中.

PARMRK會導致奇偶校驗錯誤被標志成特殊字符加入到輸入流之中.如果IGNPAR選項也是有效的,那么一個NUL(八進制000)字符會被加入到發生奇偶校驗錯誤的字符前面.否則,DEL(八進制177)和NUL字符會和出錯的字符一起送出.

設置軟件流控制

軟件流控制可以通過IXON,IXOFF和IXANY常量設置成有效:

1 options.c_iflag |= (IXON | IXOFF | IXANY);

將其設置為無效的時候,很簡單,只需要對這些位取反:

1 options.c_iflag &= ~(IXON | IXOFF | IXANY);

XON(start data)和XOFF(stop data)字符卻是在c_cc數組中定義的,下面會詳細描述這個數組.

輸出選項

成員變量c_oflag之中包括了輸出過濾選項.和輸入模式相似,程序可以選擇使用經過加工的或者原始的數據輸出.

常量描述
OPOSTPostprocess output (not set = raw output)
OLCUCMap lowercase to uppercase
ONLCRMap NL to CR-NL
OCRNLMap CR to NL
NOCRNo CR output at column 0
ONLRETNL performs CR function
OFILLUse fill characters for delay
OFDELFill character is DEL
NLDLYMask for delay time needed between lines
NL0No delay for NLs
NL1Delay further output after newline for 100 milliseconds
CRDLYMask for delay time needed to return carriage to left column
CR0No delay for CRs
CR1Delay after CRs depending on current column position
CR2Delay 100 milliseconds after sending CRs
CR3Delay 150 milliseconds after sending CRs
TABDLYMask for delay time needed after TABs
TAB0No delay for TABs
TAB1Delay after TABs depending on current column position
TAB2Delay 100 milliseconds after sending TABs
TAB3Expand TAB characters to spaces
BSDLYMask for delay time needed after BSs
BS0No delay for BSs
BS1Delay 50 milliseconds after sending BSs
VTDLYMask for delay time needed after VTs
VT0No delay for VTs
VT1Delay 2 seconds after sending VTs
FFDLYMask for delay time needed after FFs
FF0No delay for FFs
FF1Delay 2 seconds after sending FFs

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

c_oflag成員的常量

選擇加工過的輸出

通過在c_oflag成員變量中設置OPOST選項的方法程序可以選擇加工過的輸入.

1 options.c_oflag |= OPOST;

在所有選項當中,你可能只需要使用ONLCR選項來將行分隔符映射到CR-LF組合對上.其他選項主要是歷史遺留,僅僅與行打印機和終端跟不上串行數據的年代有關.

選擇原始輸出

原始輸出方式可以通過在c_oflag中重置OPOST選項來選擇:

1 options.c_oflag &= ~OPOST;

如果OPOST選項被設置成無效的話,其他c_oflag中的選項都會失效.

控制字符

字符數組c_cc里面包括了控制字符的定義和超時參數.這個數組的每個元素都是以常量定義的.

常量描述
VINTRInterruptCTRL-C
VQUITQuitCTRL-Z
VERASEEraseBackspace (BS)
VKILLKill-lineCTRL-U
VEOFEnd-of-fileCTRL-D
VEOLEnd-of-lineCarriage return (CR)
VEOL2Second end-of-lineLine feed (LF)
VMINMinimum number of characters to read-
VSTARTStart flowCTRL-Q (XON)
VSTOPStop flowCTRL-S (XOFF)
VTIMETime to wait for data (tenths of seconds)-

?

?

?

?

?

?

?

?

?

?

?

?

成員變量c_cc中的控制字符

設置軟件流控制字符

用來做軟件流控制的字符包含在數組c_cc的VSTART和VSTOP元素里面.通常情況下,它們應該被設置成DC1(八進制021)和DC3(八進制023),它們在ASCII標準中代表著XON和XOFF字符.

設置讀取超時

UNIX串口驅動提供了設置字符和包超時的能力.數組c_cc中有兩個元素可以用來設置超時:VMIN和VTIME.在經典輸入模式或者通過open(2)和fcntl(2)函數傳遞NDELAY選項時,超時設置會被忽略.

VMIN可以指定讀取的最小字符數.如果它被設置為0,那么VTIME值則會指定每個字符讀取的等待時間.

如果VMIN不為零,VTIME會指定等待第一個字符讀取操作的時間.如果在這個指定時間中可以開始讀取某個字符,直到VMIN個數的所有字符全部被讀取,其他讀取操作將會被阻塞(等待).也就是說,一旦讀取第一個字符,串口驅動的預期就是接收到整個字符包(一共VMIN字節).如果在允許的時間內沒有字符被讀取,那么read(2)調用就會返回0.通過這個方法可以確切得告訴串口驅動程序需要讀取N個字節,而且read(2)調用只會返回N或者0.然而,超時設置只對第一個字符的讀取操作有效,所以,如果因為某些原因驅動程序在N字節的包中丟失某個字符的話,read(2)調用將會一直等下去.

VTIME可以以十分之一秒為單位指定等待字符輸入的時間.如果VTIME設置為0(默認情況),除非open(2)或者fcntl(2)函數設置了NDELAY選項,否則read(2)將會永久得阻塞(等待).

5. 讀寫串口

設置好串口之后,讀寫串口就很容易了,把串口當作文件讀寫就是.

  • 發送數據
1 char buffer[1024];int Length;int nByte;nByte = write(fd, buffer ,Length)

和寫入其他設備文件的方式相同,write函數也會返回發送數據的字節數或者在發生錯誤的時候返回-1.通常,發送數據最常見的錯誤就是EIO,當調制解調器或者數據鏈路將Data Carrier Detect(DCD)信號線弄掉了,就會發生這個錯誤.而且,直至關閉端口這個情況會一直持續.

  • 讀取串口數據

使用文件操作read函數讀取,如果設置為原始數據模式(Raw?Date Mode)傳輸數據,那么read函數返回的字符數是實際串口收到的字符數,也就是返回從串口輸入緩沖區中實際得到的字符的個數.在不能得到數據的情況下,read(2)系統調用就會一直等著,只到有端口上新的字符可以讀取或者發生超時或者錯誤的情況發生.

1 char buff[1024];int Len;int readByte = read(fd,buff,Len);

如果需要read(2)函數迅速返回的話,可以使用操作文件的函數來實現異步讀取,如fcntl,或者select等來操作:

1 fcntl(fd, F_SETFL, FNDELAY);

標志FNDELAY可以保證read(2)函數在端口上讀不到字符的時候返回0.需要回到正常(阻塞)模式的時候,需要再次在不帶FNDELAY標志的情況下調用fcntl(2)函數:

1 fcntl(fd, F_SETFL, 0);

當然,如果你最初就是以O_NDELAY標志打開串口的,你也可在之后使用這個方法改變讀取的行為方式.

6. 關閉串口

關閉串口就是關閉文件.

1 close(fd);

關閉串口會將DTR信號線設置成low,這會導致很多調制解調器掛起.

7. 例子

下面是一個簡單的讀取串口數據的例子,使用了上面定義的一些函數和頭文件.

1 /********************************************************************** 2 代碼說明:使用串口二測試的,發送的數據是字符, 3 但是沒有發送字符串結束符號,所以接收到后,后面加上了結束符號。 4 我測試使用的是單片機發送數據到第二個串口,測試通過。 5 **********************************************************************/ 6 #define FALSE -1 7 #define TRUE 0 8 /*********************************************************************/ 9 int OpenDev(char *Dev) 10 { 11 int fd = open( Dev, O_RDWR ); //| O_NOCTTY | O_NDELAY 12 if (-1 == fd) 13 { 14 perror("Can't Open Serial Port"); 15 return -1; 16 } 17 else 18 return fd; 19 } 20 int main(int argc, char **argv){ 21 int fd; 22 int nread; 23 char buff[512]; 24 char *dev = "/dev/ttyS1"; //串口二 25 fd = OpenDev(dev); 26 set_speed(fd,19200); 27 if (set_Parity(fd,8,1,'N') == FALSE) { 28 printf("Set Parity Error\n"); 29 exit (0); 30 } 31 while (1) //循環讀取數據 32 { 33 while((nread = read(fd, buff, 512))>0) 34 { 35 printf("\nLen %d\n",nread); 36 buff[nread+1] = '\0'; 37 printf( "\n%s", buff); 38 } 39 } 40 //close(fd); 41 // exit (0); 42 }

本文轉自:http://www.ibm.com/developerworks/cn/linux/l-serials/

轉載于:https://www.cnblogs.com/jason-lu/p/3173988.html

總結

以上是生活随笔為你收集整理的Linux下串口编程入门的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

国产香蕉97碰碰久久人人 | 成人av手机在线 | 91桃色国产在线播放 | 不卡视频国产 | 国色天香在线观看 | 毛片在线播放网址 | 欧美午夜寂寞影院 | 欧美日韩综合在线观看 | 激情网第四色 | 免费成人在线视频网站 | 五月婷婷视频在线 | 国产精品18久久久久vr手机版特色 | 日韩精选在线观看 | 久草男人天堂 | 在线黄色免费 | 久久免费视频观看 | 91精品夜夜| 久久精品国产免费看久久精品 | 精品久久久久免费极品大片 | 亚洲精品91天天久久人人 | 日韩午夜视频在线观看 | www久久久| 日日操天天操夜夜操 | 国产精品免费久久久久影院仙踪林 | 久久久久亚洲精品男人的天堂 | 亚洲精品乱码久久久久久9色 | 天天翘av | 欧美天堂视频在线 | 青青草国产精品 | 成人三级网站在线观看 | 天天综合中文 | 亚洲综合小说电影qvod | 香蕉色综合 | 亚洲一级性 | 日韩欧美在线高清 | 黄色一级大片在线免费看国产一 | 婷婷资源站 | 亚洲欧美日本A∨在线观看 青青河边草观看完整版高清 | 亚洲婷婷综合色高清在线 | 亚洲精品字幕在线 | 四虎在线观看 | 久久久九色精品国产一区二区三区 | 国产粉嫩在线 | 亚洲国产精品第一区二区 | 伊人宗合网 | 日本少妇高清做爰视频 | 国产视频 久久久 | 51精品国自产在线 | 成人免费在线网 | 日本精品一区二区三区在线观看 | 欧美日韩在线观看一区二区三区 | 国产精品久久久久久久久搜平片 | 五月天婷婷狠狠 | 超碰免费成人 | 国产一区二区在线免费 | 激情综合色图 | 日韩高清在线一区二区 | 毛片二区 | 少妇精69xxtheporn | 久久爱导航 | 中文字幕一区二区在线观看 | 国产精品久久一 | 精品伦理一区二区三区 | 精品国产aⅴ麻豆 | 91自拍视频在线观看 | 1024手机看片国产 | 国产麻豆成人传媒免费观看 | 精品一区二区6 | 久久久久久久免费观看 | 久久久久久久久久久免费视频 | 日韩一区二区三区免费电影 | 午夜 在线 | 在线成人免费av | 中文字幕在线观看视频一区 | 黄色小说视频网站 | 激情图片久久 | 亚洲精品影院在线观看 | 欧美性另类 | 欧美91成人网| 日韩色中色 | 日韩a在线看 | 91伊人影院 | 精品国产福利在线 | 69视频在线 | www.com久久久 | 亚洲精品黄色片 | 丁香婷婷电影 | 五月婷婷激情综合网 | 人人爽人人爽 | 欧美人人 | 99精品在线免费观看 | 中文字幕在线观看你懂的 | 日韩精品第一区 | 亚洲欧美日韩一级 | 欧美91视频 | 国产精品精品国产色婷婷 | 久久伊人91 | 日日夜夜av | 久久一区二 | 日韩欧美在线视频一区二区三区 | 一区二区三区高清不卡 | 欧美日韩国产亚洲乱码字幕 | 国产福利在线免费 | 黄色国产在线 | 99热九九这里只有精品10 | 欧美久久成人 | 狠狠的操你 | 国产毛片久久 | 国产精品一区二区三区观看 | 在线亚洲欧美日韩 | 成人一级影视 | 欧美日韩在线免费观看 | 天天插综合网 | 最近日韩中文字幕中文 | 亚洲成av人片在线观看香蕉 | 天天人人综合 | 日韩欧美高清一区二区三区 | 日韩在线观看第一页 | 日韩欧美一区二区不卡 | 91福利视频一区 | 2019av在线视频 | 久草网视频在线观看 | 天天艹日日干 | 国产精品一区二区三区视频免费 | 91精品国产福利在线观看 | 黄色成年 | 国产精品久久久久久久久久久久午 | 射射色 | 91爱爱视频 | 中文国产在线观看 | 中文字幕一区二区三区在线视频 | 区一区二区三区中文字幕 | 久久久久久久久福利 | 黄色免费网站 | 精品久久久亚洲 | 国产中文欧美日韩在线 | 午夜成人免费电影 | 在线看日韩 | 在线观看国产高清视频 | 精品a视频| 国产成在线观看免费视频 | 日韩视频二区 | 国产精品久久久久一区二区 | 日韩精品一区二区三区电影 | 亚洲涩涩一区 | 欧美精品国产精品 | 欧美日韩国产色综合一二三四 | 久久网页 | 免费男女羞羞的视频网站中文字幕 | 国产一区二区电影在线观看 | 亚洲高清色综合 | 97超级碰碰碰碰久久久久 | 久久国产精彩视频 | 99久热在线精品视频观看 | 日本三级久久久 | 亚洲区另类春色综合小说校园片 | 国产精品精品国产婷婷这里av | 毛片一级免费一级 | 色综合久久88色综合天天 | 亚洲久草网 | 国产精品久久久久久久久久久久冷 | 四虎国产| 精品 激情 | 亚洲一区 影院 | 日韩在线观看第一页 | 国产精品九九九 | a级片在线播放 | 国产精品久久久久久久久久久杏吧 | 97国产视频 | 久久国产精品99久久久久久老狼 | 97精品视频在线播放 | 久久不射影院 | 国产又黄又猛又粗 | 日韩中文字幕在线 | 97超级碰碰碰视频在线观看 | 亚洲女人av | 人人要人人澡人人爽人人dvd | 在线免费av网 | 正在播放亚洲精品 | 午夜成人免费电影 | 久久精品99久久久久久2456 | 综合av在线| 日韩理论片在线 | 欧美综合在线视频 | 中文字幕在线一区观看 | 国产一区欧美一区 | 国产黄色精品网站 | 在线成人免费 | 911久久香蕉国产线看观看 | 日韩免费在线 | 亚洲激情电影在线 | 2021国产精品视频 | 国产96在线 | www.国产精品 | 911免费视频 | 97天天干| 四虎永久视频 | 天天操比 | 免费a网站 | 操操操人人 | 最新婷婷色 | 国产99在线免费 | 看av免费 | 免费a级黄色毛片 | 在线播放一区二区三区 | 精品伊人久久久 | 国产高清在线a视频大全 | 97超碰在线久草超碰在线观看 | 久久久久久久久久久电影 | 亚洲欧美在线观看视频 | 色婷婷播放 | 欧美精品国产精品 | 欧美视频不卡 | 婷婷五月色综合 | 免费观看一区二区 | 免费视频一区 | 视频成人| 一区二区 不卡 | 精品国产一区二区在线 | 一区二区三区免费在线 | 国产一区精品在线观看 | 国产精品久久久久影院 | 日韩福利在线观看 | 国产91精品一区二区麻豆亚洲 | 一区二区三区免费看 | 日韩在线一区二区免费 | 九色精品在线 | 久久国内精品 | 精品视频中文字幕 | 欧美另类一二三四区 | 国产在线看一区 | 黄色免费电影网站 | 久久久久久久久久久网 | 亚洲激情av | 五月婷丁香网 | 中文字幕av免费 | 中文字幕在线看片 | 亚洲精品在线视频网站 | 午夜91在线| 亚洲精品av中文字幕在线在线 | 精品国产乱子伦一区二区 | 中文视频一区二区 | 午夜色婷婷 | 色视频国产直接看 | 日韩成人在线一区二区 | 日韩av电影一区 | 欧美日韩视频网站 | 亚洲精品乱码久久久久久蜜桃91 | 怡红院久久 | 亚洲国产精品传媒在线观看 | 二区精品视频 | 成人av电影免费在线播放 | 国产精品毛片一区 | 五月的婷婷 | 日本特黄特色aaa大片免费 | 中文字幕中文字幕在线中文字幕三区 | 在线观看亚洲视频 | 欧美九九九 | 久久精品一区二区三区中文字幕 | 草久视频在线 | 日本aaa在线观看 | 久久不卡国产精品一区二区 | 国产成人av综合色 | 中文字幕在线一区观看 | 黄色毛片观看 | 亚洲精品久久久久58 | 视频在线99 | 综合色在线 | 一区二区三区免费在线播放 | 欧美在线视频一区二区 | 天天综合网 天天 | 999电影免费在线观看2020 | 精品国产一区二区三区av性色 | 九九九九免费视频 | 狠狠干网址 | 91污在线 | av网址最新 | 精品国模一区二区 | 在线中文字幕电影 | 久久久久一区 | 国产在线日韩 | 欧美91视频 | 中文av影院 | 欧美日韩国产精品爽爽 | 国产无吗一区二区三区在线欢 | 免费在线观看av网址 | 91网站免费观看 | 国产玖玖精品视频 | 国产精品ⅴa有声小说 | 免费91在线观看 | 久久精品精品电影网 | 亚洲一级性 | 国产精品免费久久久久久久久久中文 | 国产精品一区二区美女视频免费看 | 色小说在线 | 人人看人人草 | 韩日电影在线免费看 | 日本电影久久 | 免费的黄色的网站 | 人人舔人人干 | 色就干| 国色综合| 日韩丝袜视频 | 日韩高清dvd| 日日干天天操 | 精品国产三级a∨在线欧美 免费一级片在线观看 | 日韩羞羞 | 成人免费在线视频 | 亚洲精品一区二区网址 | 中文 一区二区 | 亚洲精品玖玖玖av在线看 | 色www精品视频在线观看 | 亚洲欧美日韩精品一区二区 | 国产原创在线 | 亚洲综合成人av | 亚洲三级视频 | 中文字幕av在线电影 | 极品久久久久 | 亚洲一二视频 | 亚洲激精日韩激精欧美精品 | 在线视频 一区二区 | 色天天天| 91色视频 | 日韩av中文在线观看 | 久久久久国产免费免费 | 中文字幕乱码电影 | 人人爽人人 | 亚洲一级电影视频 | 五月婷婷六月丁香在线观看 | 精品v亚洲v欧美v高清v | 日本久久不卡视频 | 96国产精品视频 | 天天干天天干天天干 | 国产你懂的在线 | 三级午夜片 | 中文字幕免费播放 | 久草在线免费资源站 | 天天综合成人网 | 中文字幕在线观看1 | 激情综合网色播五月 | 免费看的黄色片 | 香蕉网在线播放 | 一区二区三区高清 | 日韩亚洲国产中文字幕 | 亚洲午夜精品久久久久久久久久久久 | 在线观看91av | 一级黄色片在线免费观看 | 日韩在线免费 | 日韩在线高清 | 国产美女精品视频免费观看 | 五月婷婷激情综合网 | 五月亚洲| 欧美伊人网 | www.啪啪.com | 黄色在线观看免费网站 | 男女精品久久 | 99视频在线精品国自产拍免费观看 | 五月天天色 | 国产美女免费视频 | 免费日韩一区二区 | 91亚洲欧美| a黄色片 | 开心激情综合网 | 中文字幕中文字幕在线中文字幕三区 | 久久影视精品 | 99精品国产一区二区三区麻豆 | 久久av高清 | 中文字幕在线观看第一页 | 激情视频在线高清看 | 亚洲精品在线电影 | 久久久九色精品国产一区二区三区 | 婷婷丁香狠狠爱 | 岛国精品一区二区 | 精品福利在线视频 | 91av亚洲| 色婷婷国产精品 | 色插综合| 日韩免费专区 | 亚洲综合色视频在线观看 | 九色精品免费永久在线 | 超碰资源在线 | 国产中文字幕国产 | 精品视频久久久 | 人人干人人搞 | 97在线免费观看 | 久久久www成人免费毛片 | 日韩av中文字幕在线 | 日本中文字幕电影在线免费观看 | 最新久久免费视频 | 亚洲综合欧美日韩狠狠色 | 激情av一区二区 | 尤物97国产精品久久精品国产 | 伊人午夜 | 欧美一级日韩免费不卡 | 伊人伊成久久人综合网小说 | 亚洲 欧美 国产 va在线影院 | 99精品色 | 国产福利不卡视频 | 特级黄色片免费看 | 国产第一福利 | 久久理论电影 | 91tv国产成人福利 | 久久久久久久久久网站 | 婷婷激情av | 91在线看片 | 久草免费在线视频 | 国产日韩精品在线 | 久久亚洲影院 | 久久中文欧美 | 狠狠做六月爱婷婷综合aⅴ 日本高清免费中文字幕 | 99久久精品国产亚洲 | 一区二区不卡视频在线观看 | 一级黄色av | 99亚洲视频| 国产成人精品网站 | 国产91精品看黄网站在线观看动漫 | 久久久久亚洲精品男人的天堂 | 最新不卡av | 亚洲精品久久久蜜桃 | 欧美日韩视频一区二区 | 日韩理论片在线 | 成人在线电影观看 | 在线观看 亚洲 | 久久久久久久亚洲精品 | 亚洲国产97在线精品一区 | 日日干日日色 | 久久男女视频 | 国产一二三区在线观看 | 国产精品中文字幕在线播放 | 亚洲国产精品一区二区久久,亚洲午夜 | 色97在线 | 91在线看黄 | 97视频在线观看视频免费视频 | 国产精品你懂的在线观看 | 国产在线高清视频 | 日韩视频在线观看视频 | av在线网站观看 | 国产免费视频一区二区裸体 | 欧美日韩国产综合一区二区 | 久久无码av一区二区三区电影网 | 欧美日高清视频 | 亚洲五月激情 | 亚洲视频在线看 | 国产高潮久久 | 婷婷5月激情5月 | 国产色视频 | 99在线视频播放 | 天天天插| 91成人午夜 | 国产一区欧美二区 | 欧美日韩国产伦理 | 这里只有精品视频在线观看 | 久久精品欧美日韩精品 | 国产一级a毛片视频爆浆 | 国产视频九色蝌蚪 | 天天爱天天干天天爽 | 精品久久久久久亚洲 | 久久综合久久综合久久 | 久久香蕉影视 | 亚洲区另类春色综合小说校园片 | 久久精品亚洲精品国产欧美 | 欧美日韩国产精品爽爽 | 97精品国产91久久久久久 | 国产精品va在线播放 | 色的网站在线观看 | 中文字幕在线看人 | 黄色精品一区二区 | 亚洲成人第一区 | 亚洲国产伊人 | 久久久高清视频 | 91av视屏 | 免费在线观看国产精品 | 亚洲第一区在线观看 | 成年人在线免费看视频 | 久久影院中文字幕 | 国产三级午夜理伦三级 | 亚洲 综合 国产 精品 | 欧美精品亚州精品 | 成人在线视频一区 | 亚洲成熟女人毛片在线 | 日韩中文字幕视频在线 | 成人一区二区三区中文字幕 | 在线观看国产日韩 | 久久激情婷婷 | 国产成人久久精品一区二区三区 | 免费一区在线 | 免费的国产精品 | 日韩成人在线免费观看 | 亚洲jizzjizz日本少妇 | 国产小视频国产精品 | 午夜久久久久久久久久久 | 一区二区视频在线免费观看 | 字幕网av| 免费观看性生交大片3 | 成人在线一区二区 | 九九免费观看全部免费视频 | 欧美性色xo影院 | 人人舔人人爱 | 精品久久久久久久 | 国产日本亚洲高清 | 超碰国产在线播放 | 国产一区福利 | 日本少妇高清做爰视频 | 国产精品综合av一区二区国产馆 | 99r精品视频在线观看 | 久久国产二区 | 337p日本欧洲亚洲大胆裸体艺术 | 成人va在线观看 | 久精品视频在线观看 | av中文在线 | 欧美一级大片在线观看 | 国产在线欧美日韩 | 天天干天天操av | 免费a v在线| 亚洲精品五月天 | 亚洲精品一区二区三区四区高清 | 在线观看完整版 | 99爱在线 | av丝袜在线| 婷婷在线视频观看 | 免费看国产精品 | 日韩欧美视频一区二区三区 | 久久公开免费视频 | 久久精品中文字幕一区二区三区 | 日日噜噜噜噜夜夜爽亚洲精品 | 日韩动漫免费观看高清完整版在线观看 | 精品久久1 | 中文字幕在线一二 | 在线观看爱爱视频 | 久久九九国产精品 | 天天操天天操天天操天天操天天操 | 免费观看一区二区三区视频 | 免费试看一区 | 亚洲一区美女视频在线观看免费 | 色成人亚洲| 菠萝菠萝在线精品视频 | 中文字幕一区三区 | 一本到视频在线观看 | 国产精品久久久久久av | 成年人在线免费视频观看 | 天天综合网 天天综合色 | 欧美日韩视频在线 | www.狠狠| 天天综合天天做天天综合 | 日本狠狠干 | 免费观看国产视频 | 91精品国产91p65 | 97电影院网| 亚洲国产精品va在线看黑人 | 亚洲精品国产精品国自产在线 | 国产999精品久久久影片官网 | 欧美日韩三区二区 | av中文电影| 国产精品久久久久久久久久不蜜月 | 激情xxxx| 狠狠操.com | 精品久久网 | av三级在线播放 | 特级毛片在线免费观看 | 精品国产乱码久久久久久天美 | aaa免费毛片 | jizz999| 欧美精品一区二区性色 | av电影 一区二区 | 特级黄色一级 | 中文字幕在线观看免费观看 | 国产精品网红直播 | 正在播放国产91 | 成人黄色免费在线观看 | 国产又粗又长又硬免费视频 | 91精品久久久久久久99蜜桃 | 成人午夜网 | 免费av观看网站 | 中国老女人日b | 国产偷在线 | 国产精品美女久久久久久 | 国产一区在线视频 | 成年人在线播放视频 | 奇米网网址 | 成人久久网 | 精品视频在线免费观看 | 激情视频免费观看 | 99久高清在线观看视频99精品热在线观看视频 | 伊人伊成久久人综合网站 | 亚洲欧美国产精品va在线观看 | 久久99久久99精品免费看小说 | 久久免费在线观看视频 | 欧美日韩国产一区二区三区 | 超碰国产在线播放 | 东方av免费在线观看 | 黄p在线播放 | av免费在线看网站 | 国产99久久九九精品免费 | 国产精品一区二区果冻传媒 | 91中文字幕一区 | 91桃色在线免费观看 | 免费亚洲婷婷 | 一区二区三区精品在线视频 | 精品久久99 | 天天色天 | 深爱激情五月网 | 欧美日韩高清在线观看 | 青青久视频 | 91麻豆免费视频 | 久久国产欧美日韩精品 | 在线视频中文字幕一区 | 免费日韩一区二区三区 | 日本三级在线观看中文字 | 国内小视频 | 久久久久电影 | 国产免费视频一区二区裸体 | 日日干影院 | 久久一区二区三区国产精品 | 国产一二区视频 | 免费高清在线观看成人 | 亚洲一区日韩在线 | 蜜臀精品久久久久久蜜臀 | 久久国产精品久久精品 | 色综合久久久久网 | 国产精品v a免费视频 | 国产福利小视频在线 | 黄污污网站 | 国产一级免费在线观看 | 日韩av成人在线观看 | 亚洲精品大片www | 香蕉视频在线免费 | 91精品国自产在线偷拍蜜桃 | 国产在线a免费观看 | 国产99re | 国产中文字幕在线 | 片网址| 欧美激情亚洲综合 | 99久久婷婷国产 | 国产精品一区二区三区在线播放 | 98涩涩国产露脸精品国产网 | 九月婷婷人人澡人人添人人爽 | 国产xx视频| 国产精品国产三级国产 | 免费男女羞羞的视频网站中文字幕 | 亚洲高清视频在线播放 | 成人av高清在线 | 久久国产电影 | 亚洲色图美腿丝袜 | 亚洲精品动漫久久久久 | 四虎成人精品永久免费av | 欧美专区日韩专区 | 国产精品露脸在线 | 99精品久久久久久久 | 97在线视频网站 | 久久精品99精品国产香蕉 | 亚洲视频2| 欧美性极品xxxx做受 | 日韩视频图片 | 成年人免费电影 | 99久久久成人国产精品 | 激情电影影院 | 五月天免费网站 | 成人黄在线观看 | 色偷偷av男人天堂 | 96亚洲精品久久 | 欧美视频在线观看免费网址 | 欧美一级片免费播放 | 久久激情网站 | 美女网色 | a天堂免费| 综合黄色网 | 国产精品一区二区免费 | www.久久婷婷| 久久五月婷婷丁香社区 | 国产成人在线播放 | 国产精品美女久久久久久 | 一级黄色片在线免费看 | 国产成人无码AⅤ片在线观 日韩av不卡在线 | 国产高清视频免费最新在线 | 欧美在线日韩在线 | 欧美久久久影院 | 97热在线观看 | 欧美午夜精品久久久久久孕妇 | 91人人澡人人爽人人精品 | 九九热免费精品视频 | 婷婷精品国产欧美精品亚洲人人爽 | 天天操天天操天天操天天操天天操 | 国产色女| 色婷婷激情电影 | 最近最新最好看中文视频 | 亚洲视频观看 | www.色午夜,com | 黄色网免费 | 免费韩国av | 日韩免费成人av | 国产高清av在线播放 | 91精品国产99久久久久久红楼 | 一区二区三区四区五区在线 | 久久有精品| 高清av网站 | 99精品国产免费久久久久久下载 | 一级黄色大片在线观看 | 99精品视频免费在线观看 | 丝袜少妇在线 | 亚洲一级片在线观看 | 91精品视频在线免费观看 | 天堂在线免费视频 | 国产亚洲精品久久久久久网站 | www.午夜色.com| 免费日韩一区二区 | 成人小视频在线免费观看 | 免费在线观看av网站 | 天天爱天天操 | 国产精品一区二区美女视频免费看 | 国产精品18久久久久久不卡孕妇 | 91在线免费公开视频 | 日日日爽爽爽 | 久久激情视频 | 99久久99久久精品国产片 | 欧美日韩高清一区二区 国产亚洲免费看 | 日本中文字幕在线免费观看 | 久久久久高清毛片一级 | 免费福利在线视频 | 免费看黄在线 | 国产高清福利在线 | 成年人免费看片 | 色的网站在线观看 | 高清国产午夜精品久久久久久 | 久久狠狠亚洲综合 | 久久激情影院 | 91精品国产一区 | 97人人视频| 999精品| 天天操天天舔天天干 | 久久久久亚洲精品国产 | 亚洲免费一级电影 | 久久综合毛片 | 成人亚洲欧美 | 在线观看免费av网 | 在线免费观看黄色av | 一级c片 | 99久久精品免费看国产一区二区三区 | 激情小说网站亚洲综合网 | 丁香五月亚洲综合在线 | 成人一级| 在线观看视频97 | 成人永久在线 | 色综合久久久久综合体 | 五月天婷婷丁香花 | 日韩精品电影在线播放 | 在线视频 成人 | 日操操| 国产一级片久久 | 在线观看视频在线观看 | 日韩久久精品一区二区三区下载 | 日韩欧美极品 | 国产91免费在线 | 成人精品一区二区三区电影免费 | 成人黄色电影在线播放 | 在线看片a| 国产精品白丝av | 免费日韩 精品中文字幕视频在线 | 久久不卡免费视频 | 亚洲成人999| 波多野结衣最新 | 中文字幕国产精品一区二区 | 久久视频免费 | 久久伊人综合 | 午夜 免费 | 亚洲国产日本 | 一区二区三区 中文字幕 | 99精品视频免费观看视频 | 最近中文字幕高清字幕在线视频 | 亚洲欧美激情插 | 欧美日韩亚洲一 | 天天插天天爱 | 久久久久人人 | 国产精品一二三 | 色欲综合视频天天天 | 精品久久久精品 | 在线免费观看黄 | 久草免费看 | 国产精品久久久久久久久久免费 | 国产视频一二三 | 国产高清免费av | 五月天久久久 | 中文在线免费一区三区 | 亚洲精品在线观看中文字幕 | av电影在线观看完整版一区二区 | 最近日本mv字幕免费观看 | 久久97精品 | 久久综合久久八八 | 日本成人中文字幕在线观看 | 国产精品不卡在线 | 国产精品对白一区二区三区 | 亚洲高清视频一区二区三区 | 日本黄色黄网站 | 国产亚洲精品美女久久 | 一区二区三区免费在线观看视频 | 午夜精品久久久久久久久久久 | 中文字幕免费观看全部电影 | 国产精品日韩在线 | 黄色国产高清 | 一区二区三区免费在线观看视频 | 国产日本在线 | 91视频大全| 五月婷丁香 | 在线视频手机国产 | 免费看片成年人 | 狠狠干网站 | 欧美午夜精品久久久久 | 中文字幕精品一区二区三区电影 | 亚洲日本国产精品 | 日本精品一区二区三区在线观看 | 成人h视频 | 国产精品黄色影片导航在线观看 | 中文字幕免费高 | 国产伦精品一区二区三区在线 | 有码中文在线 | 国产一区二区中文字幕 | 国产福利免费在线观看 | www.av免费观看 | 日韩理论影院 | 国产精品99久久久久久久久 | 免费碰碰 | 一区二区三区在线观看免费 | 丁香花中文字幕 | 日韩视频 一区 | 日韩高清精品免费观看 | 欧美一区二区在线免费看 | 国产精品综合久久久久 | 免费在线观看成年人视频 | 日韩在线观看一区二区 | 九九九视频精品 | 国产精品6 | 成人免费看电影 | 国产中文字幕国产 | 免费成人结看片 | 国产精品日韩 | 国产在线播放一区二区三区 | 国产精品中文字幕在线播放 | www麻豆视频 | www.久久视频| 超碰av在线 | 国产精品美女久久久久aⅴ 干干夜夜 | 欧美a视频| 国产成人一区二区三区电影 | 日韩视频一区二区三区在线播放免费观看 | 九九九在线观看视频 | 国产精品美乳一区二区免费 | 国产在线观看免费 | 1024久久 | 日韩av免费观看网站 | 国产日韩欧美在线 | 麻豆久久精品 | 欧美乱码精品一区二区 | 97电影手机版 | 91国内产香蕉 | 免费 在线 中文 日本 | 麻豆av一区二区三区在线观看 | 深爱婷婷久久综合 | 欧美激情精品久久 | 精品国内 | 中文字幕日本电影 | 2020天天干天天操 | 91福利视频免费 | 日本公乱妇视频 | 青春草免费在线视频 | www色网站| 美女黄濒 | 欧美日韩久久久 | 在线播放视频一区 | 日韩高清不卡一区二区三区 | 在线黄色av电影 | 国产成年人av| www最近高清中文国语在线观看 | 深夜福利视频一区二区 | 中文视频在线看 | 精品国产美女在线 | 中文字幕电影在线 | 日韩久久片 | 中文字幕在线观看你懂的 | 人人天天夜夜 | 久久精品亚洲一区二区三区观看模式 | 久久小视频| 久久午夜国产精品 | 激情伊人五月天 | 98超碰人人 | 亚洲精品伦理在线 | 中文字幕在线视频国产 | a√资源在线 | free. 性欧美.com | 国产免费专区 | 五月婷婷丁香激情 | 国产主播99| 国产区高清在线 | 91亚洲夫妻 | 久久精品99国产国产 | 亚洲综合欧美激情 | 狠狠躁夜夜av | 91精品国产乱码久久桃 | 91网页版在线观看 | 国产96精品| 亚洲欧洲久久久 | av丝袜在线 | 日韩精品一区二区三区丰满 | 天天做天天爱天天爽综合网 | 91看片在线观看 | 免费人成在线观看网站 | 久久久久久久免费看 | 亚洲一区二区三区在线看 | 亚洲另类xxxx| 国产精品久久久区三区天天噜 | 成人av网页 | 伊人色**天天综合婷婷 | 97精品超碰一区二区三区 | 探花视频免费观看 | 天天色天天操天天爽 | 久久久国产99久久国产一 | 日韩精品不卡在线观看 | 国产高清在线看 | 96av麻豆蜜桃一区二区 | 午夜精品电影一区二区在线 | 久久婷五月 | 国产精品第一页在线观看 | 亚洲激情国产精品 | 日韩成人免费在线观看 | 天干啦夜天干天干在线线 | 亚洲成人av片 | wwwwww色| 国产在线观看地址 | 国内精品免费久久影院 | 亚洲永久精品视频 | 韩国av三级| 99久久日韩精品免费热麻豆美女 | 一区二区视频在线看 | 久久久国产一区二区 | 操少妇视频 | 天天射天天舔天天干 | 91刺激视频| 91污在线观看 | 国产自制av | 亚洲国产福利视频 | 狠狠躁夜夜躁人人爽视频 | 香蕉视频在线视频 | 久久69av | 麻豆免费精品视频 | 国产青草视频在线观看 | 日日干网| 狠狠干 狠狠操 | 99精品影视| 伊人手机在线 | 亚洲精品自拍视频在线观看 | 国产精品欧美一区二区 | 97超碰总站 | 91桃色免费视频 | 成人中文字幕+乱码+中文字幕 | 久久久免费在线观看 | 97成人精品 | 国产精品自产拍在线观看蜜 | 欧美日韩免费一区二区三区 | 国产精品一区二区三区在线播放 | 91福利社区在线观看 | 亚洲精品自拍 | 96av麻豆蜜桃一区二区 | 亚洲天堂激情 | 亚洲精品久久久蜜臀下载官网 | 中文在线www | 久久超碰网 | 66av99精品福利视频在线 | 91精品视频在线免费观看 | 国产三级视频 | 日本二区三区在线 | 国产免费xvideos视频入口 | 国精产品999国精产品岳 | 久久久久成人精品亚洲国产 | 天天狠狠干| 色视频网址 | 国产精品黄色在线观看 | 在线免费视频 你懂得 | 婷婷五天天在线视频 | 狠狠亚洲 | 国产午夜精品一区二区三区四区 | 国产精品大片在线观看 | 国内精品亚洲 | 字幕网在线观看 | 亚洲综合在线五月天 | 伊人天堂网 | 日韩精品无 | 婷婷在线网站 | www.夜夜骑.com | 91超国产| 精品国产一区二区久久 | 97视频在线观看视频免费视频 | 天天看天天干天天操 | 中文字幕欲求不满 | 中文亚洲欧美日韩 | 四虎影视成人 | 天天天天干| 亚洲精品一区二区三区四区高清 | 欧美成人性网 | 91毛片在线 | 免费在线国产 |