《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 業界動態 > STM32 USART 串口 DMA 接收和發送的源碼詳解

STM32 USART 串口 DMA 接收和發送的源碼詳解

2018-07-30
來源:互聯網

硬件平臺:STM32F103ZET6;

本文引用地址: http://power.21ic.com//poc/technical/201807/74930.html

開發環境:KEIL 4;

先說說應用通訊模式,串口終端的工作方式和迪文屏差不多,終端被動接受MCU發的指令,終端會偶爾主動發送一些數據給MCU(像迪文屏的觸摸信息上傳)。

串口DMA發送:

發送數據的流程:

前臺程序中有數據要發送,則需要做如下幾件事

1. 在數據發送緩沖區內放好要發送的數據,說明:此數據緩沖區的首地址必須要在DMA初始化的時候寫入到DMA配置中去。

2. 將數據緩沖區內要發送的數據字節數賦值給發送DMA通道,(串口發送DMA和串口接收DAM不是同一個DMA通道)

3. 開啟DMA,一旦開啟,則DMA開始發送數據,說明一下:在KEIL調試好的時候,DMA和調試是不同步的,即不管Keil 是什么狀態,DMA總是發送數據。

4. 等待發送完成標志位,即下面的終端服務函數中的第3點設置的標志位。或者根據自己的實際情況來定,是否要一直等待這個標志位,也可以通過狀態機的方式來循環查詢也可以。或者其他方式。

判斷數據發送完成:

啟動DMA并發送完后,產生DMA發送完成中斷,在中斷函數中做如下幾件事:

1. 清DMA發送完成中斷標志位

2. 關閉串口發送DMA通道

3. 給前臺程序設置一個軟件標志位,說明數據已經發送完畢

串口DMA接收:

接收數據的流程:

串口接收DMA在初始化的時候就處于開啟狀態,一直等待數據的到來,在軟件上無需做任何事情,只要在初始化配置的時候設置好配置就可以了。

判斷數據數據接收完成:

這里判斷接收完成是通過串口空閑中斷的方式實現,即當串口數據流停止后,就會產生IDLE中斷。這個中斷里面做如下幾件事:

1. 關閉串口接收DMA通道,2點原因:1.防止后面又有數據接收到,產生干擾。2.便于DMA的重新配置賦值,下面第4點。

2. 清除DMA 所有標志位

3. 從DMA寄存器中獲取接收到的數據字節數

4. 重新設置DMA下次要接收的數據字節數,注意,這里是給DMA寄存器重新設置接收的計數值,這個數量只能大于或者等于可能接收的字節數,否則當DMA接收計數器遞減到0的時候,又會重載這個計數值,重新循環遞減計數,所以接收緩沖區的數據則會被覆蓋丟失。

5. 開啟DMA通道,等待下一次的數據接收,注意,對DMA的相關寄存器配置寫入,如第4條的寫入計數值,必須要在關閉DMA的條件進行,否則操作無效。

說明一下,STM32的IDLE的中斷在串口無數據接收的情況下,是不會一直產生的,產生的條件是這樣的,當清除IDLE標志位后,必須有接收到第一個數據后,才開始觸發,一斷接收的數據斷流,沒有接收到數據,即產生IDLE中斷。

USART 和 DMA 硬件初始化配置

/*--- LumModule Usart Config ---------------------------------------*/

#define LUMMOD_UART USART3

#define LUMMOD_UART_GPIO GPIOC

#define LUMMOD_UART_CLK RCC_APB1Periph_USART3

#define LUMMOD_UART_GPIO_CLK RCC_APB2Periph_GPIOC

#define LUMMOD_UART_RxPin GPIO_Pin_11

#define LUMMOD_UART_TxPin GPIO_Pin_10

#define LUMMOD_UART_IRQn USART3_IRQn

#define LUMMOD_UART_DR_Base (USART3_BASE + 0x4) //0x40013804

#define LUMMOD_UART_Tx_DMA_Channel DMA1_Channel2

#define LUMMOD_UART_Tx_DMA_FLAG DMA1_FLAG_GL2//DMA1_FLAG_TC2 | DMA1_FLAG_TE2

#define LUMMOD_UART_Tx_DMA_IRQ DMA1_Channel2_IRQn

#define LUMMOD_UART_Rx_DMA_Channel DMA1_Channel3

#define LUMMOD_UART_Rx_DMA_FLAG DMA1_FLAG_GL3//DMA1_FLAG_TC3 | DMA1_FLAG_TE3

#define LUMMOD_UART_Rx_DMA_IRQ DMA1_Channel3_IRQn

void Uart_Init(void)

{

NVIC_InitTypeDef NVIC_InitStructure;

GPIO_InitTypeDef GPIO_InitStructure;

USART_InitTypeDef USART_InitStructure;

/* System Clocks Configuration */

//= System Clocks Configuration ====================================================================//

/* Enable GPIO clock */

RCC_APB2PeriphClockCmd(LUMMOD_UART_GPIO_CLK , ENABLE ); // 開啟串口所在IO端口的時鐘

/* Enable USART Clock */

RCC_APB1PeriphClockCmd(LUMMOD_UART_CLK, ENABLE); // 開始串口時鐘

//=NVIC_Configuration==============================================================================//

/* Configure the NVIC Preemption Priority Bits */

NVIC_PriorityGroupConfig(NVIC_PriorityGroup_3);

/* Enable the DMA Interrupt */

NVIC_InitStructure.NVIC_IRQChannel = LUMMOD_UART_Tx_DMA_IRQ; // 發送DMA通道的中斷配置

NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 2; // 優先級設置

NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1;

NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;

NVIC_Init(&NVIC_InitStructure);

/* Enable the USART Interrupt */

NVIC_InitStructure.NVIC_IRQChannel = LUMMOD_UART_IRQn; // 串口中斷配置

NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 2;

NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;

NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;

NVIC_Init(&NVIC_InitStructure);

//=GPIO_Configuration==============================================================================//

GPIO_PinRemapConfig(GPIO_PartialRemap_USART3, ENABLE); // 我這里沒有用默認IO口,所以進行了重新映射,這個可以根據自己的硬件情況配置選擇

/* Configure USART3 Rx as input floating */

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU; // 串口接收IO口的設置

GPIO_InitStructure.GPIO_Pin = LUMMOD_UART_RxPin;

GPIO_Init(LUMMOD_UART_GPIO, &GPIO_InitStructure);

/* Configure USART3 Tx as alternate function push-pull */

GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; // 串口發送IO口的設置

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; // 這里設置成復用形式的推挽輸出

GPIO_InitStructure.GPIO_Pin = LUMMOD_UART_TxPin;

GPIO_Init(LUMMOD_UART_GPIO, &GPIO_InitStructure);

DMA_Uart_Init(); // 串口 DMA 配置

/* USART Format configuration ------------------------------------------------------*/

USART_InitStructure.USART_WordLength = USART_WordLength_8b; // 串口格式配置

USART_InitStructure.USART_StopBits = USART_StopBits_1;

USART_InitStructure.USART_Parity = USART_Parity_No;

USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;

USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;

/* Configure USART3 */

USART_InitStructure.USART_BaudRate = 115200; // 波特率設置

USART_Init(LUMMOD_UART, &USART_InitStructure);

/* Enable USART3 Receive and Transmit interrupts */

USART_ITConfig(LUMMOD_UART, USART_IT_IDLE, ENABLE); // 開啟 串口空閑IDEL 中斷

/* Enable the USART3 */

USART_Cmd(LUMMOD_UART, ENABLE); // 開啟串口

/* Enable USARTy DMA TX request */

USART_DMACmd(LUMMOD_UART, USART_DMAReq_Tx, ENABLE); // 開啟串口DMA發送

USART_DMACmd(LUMMOD_UART, USART_DMAReq_Rx, ENABLE); // 開啟串口DMA接收

}

void DMA_Uart_Init(void)

{

DMA_InitTypeDef DMA_InitStructure;

/* DMA clock enable */

RCC_AHBPeriphClockCmd(RCC_AHBPeriph_DMA1, ENABLE); // 開啟DMA1時鐘

//=DMA_Configuration==============================================================================//

/*--- LUMMOD_UART_Tx_DMA_Channel DMA Config ---*/

DMA_Cmd(LUMMOD_UART_Tx_DMA_Channel, DISABLE); // 關DMA通道

DMA_

DMA_DeInit(LUMMOD_UART_Tx_DMA_Channel); // 恢復缺省值

DMA_InitStructure.DMA_PeripheralBaseAddr = (uint32_t)(&LUMMOD_UART->DR);// 設置串口發送數據寄存器

DMA_InitStructure.DMA_MemoryBaseAddr = (uint32_t)LumMod_Tx_Buf; // 設置發送緩沖區首地址

DMA_InitStructure.DMA_DIR = DMA_DIR_PeripheralDST; // 設置外設位目標,內存緩沖區 ->外設寄存器

DMA_InitStructure.DMA_BufferSize = LUMMOD_TX_BSIZE; // 需要發送的字節數,這里其實可以設置為0,因為在實際要發送的時候,會重新設置次值

DMA_InitStructure.DMA_PeripheralInc = DMA_PeripheralInc_Disable; // 外設地址不做增加調整,調整不調整是DMA自動實現的

DMA_InitStructure.DMA_MemoryInc = DMA_MemoryInc_Enable; // 內存緩沖區地址增加調整

DMA_InitStructure.DMA_PeripheralDataSize = DMA_PeripheralDataSize_Byte; // 外設數據寬度8位,1個字節

DMA_InitStructure.DMA_MemoryDataSize = DMA_MemoryDataSize_Byte; // 內存數據寬度8位,1個字節

DMA_InitStructure.DMA_Mode = DMA_Mode_Normal; // 單次傳輸模式

DMA_InitStructure.DMA_Priority = DMA_Priority_VeryHigh; // 優先級設置

DMA_InitStructure.DMA_M2M = DMA_M2M_Disable; // 關閉內存到內存的DMA模式

DMA_Init(LUMMOD_UART_Tx_DMA_Channel, &DMA_InitStructure); // 寫入配置

DMA_ClearFlag(LUMMOD_UART_Tx_DMA_FLAG); // 清除DMA所有標志

DMA_Cmd(LUMMOD_UART_Tx_DMA_Channel, DISABLE); // 關閉DMA

DMA_ITConfig(LUMMOD_UART_Tx_DMA_Channel, DMA_IT_TC, ENABLE); // 開啟發送DMA通道中斷

/*--- LUMMOD_UART_Rx_DMA_Channel DMA Config ---*/

DMA_Cmd(LUMMOD_UART_Rx_DMA_Channel, DISABLE); // 關DMA通道

DMA_DeInit(LUMMOD_UART_Rx_DMA_Channel); // 恢復缺省值

DMA_InitStructure.DMA_PeripheralBaseAddr = (uint32_t)(&LUMMOD_UART->DR);// 設置串口接收數據寄存器

DMA_InitStructure.DMA_MemoryBaseAddr = (uint32_t)LumMod_Rx_Buf; // 設置接收緩沖區首地址

DMA_InitStructure.DMA_DIR = DMA_DIR_PeripheralSRC; // 設置外設為數據源,外設寄存器 -> 內存緩沖區

DMA_InitStructure.DMA_BufferSize = LUMMOD_RX_BSIZE; // 需要最大可能接收到的字節數

DMA_InitStructure.DMA_PeripheralInc = DMA_PeripheralInc_Disable; // 外設地址不做增加調整,調整不調整是DMA自動實現的

DMA_InitStructure.DMA_MemoryInc = DMA_MemoryInc_Enable; // 內存緩沖區地址增加調整

DMA_InitStructure.DMA_PeripheralDataSize = DMA_PeripheralDataSize_Byte; // 外設數據寬度8位,1個字節

DMA_InitStructure.DMA_MemoryDataSize = DMA_MemoryDataSize_Byte; // 內存數據寬度8位,1個字節

DMA_InitStructure.DMA_Mode = DMA_Mode_Normal; // 單次傳輸模式

DMA_InitStructure.DMA_Priority = DMA_Priority_VeryHigh; // 優先級設置

DMA_InitStructure.DMA_M2M = DMA_M2M_Disable; // 關閉內存到內存的DMA模式

DMA_Init(LUMMOD_UART_Rx_DMA_Channel, &DMA_InitStructure); // 寫入配置

DMA_ClearFlag(LUMMOD_UART_Rx_DMA_FLAG); // 清除DMA所有標志

DMA_Cmd(LUMMOD_UART_Rx_DMA_Channel, ENABLE); // 開啟接收DMA通道,等待接收數據

}

void BSP_Init(void)

{

Uart_Init();

}

//============================================================//

DMA 發送應用源碼

void DMA1_Channel2_IRQHandler(void)

{

if(DMA_GetITStatus(DMA1_FLAG_TC2))

{

LumMod_Uart_DAM_Tx_Over();

}

}

void LumMod_Uart_DAM_Tx_Over(void)

{

DMA_ClearFlag(LUMMOD_UART_Tx_DMA_FLAG); // 清除標志

DMA_Cmd(LUMMOD_UART_Tx_DMA_Channel, DISABLE); // 關閉DMA通道

OSMboxPost(mbLumModule_Tx, (void*)1); // 設置標志位,這里我用的是UCOSII ,可以根據自己的需求進行修改

}

void LumMod_Cmd_WriteParam( uint8 sample_num, uint8 *psz_pa

ram )

{

uint8 err;

uint8 LumMod_Tx_Index ;

LumMod_Tx_Index = 0;

LumMod_Tx_Buf[LumMod_Tx_Index++] = 1;

LumMod_Tx_Buf[LumMod_Tx_Index++] = 2;

LumMod_Tx_Buf[LumMod_Tx_Index++] = 3;

LumMod_Tx_Buf[LumMod_Tx_Index++] = 4;

LumMod_Tx_Buf[LumMod_Tx_Index++] = 5;

LumMod_Tx_Buf[LumMod_Tx_Index++] = 6;

LumMod_Tx_Buf[LumMod_Tx_Index++] = 7;

LumMod_Tx_Buf[LumMod_Tx_Index++] = 8;

LumMod_Uart_Start_DMA_Tx( LumMod_Tx_Index );

OSMboxPend(mbLumModule_Tx, 0, &err);

}

void LumMod_Uart_Start_DMA_Tx(uint16_t size)

{

LUMMOD_UART_Tx_DMA_Channel->CNDTR = (uint16_t)size; // 設置要發送的字節數目

DMA_Cmd(LUMMOD_UART_Tx_DMA_Channel, ENABLE); //開始DMA發送

}

//============================================================//

DMA 接收應用源碼

void USART3_IRQHandler(void)

{

if(USART_GetITStatus(USART3, USART_IT_IDLE) != RESET) // 空閑中斷

{

LumMod_Uart_DMA_Rx_Data();

USART_ReceiveData( USART3 ); // Clear IDLE interrupt flag bit

}

}

void LumMod_Uart_DMA_Rx_Data(void)

{

DMA_Cmd(LUMMOD_UART_Rx_DMA_Channel, DISABLE); // 關閉DMA ,防止干擾

DMA_ClearFlag( LUMMOD_UART_Rx_DMA_FLAG ); // 清DMA標志位

LumMod_Rx_Data.index = LUMMOD_RX_BSIZE - DMA_GetCurrDataCounter(LUMMOD_UART_Rx_DMA_Channel); //獲得接收到的字節數

LUMMOD_UART_Rx_DMA_Channel->CNDTR = LUMMOD_RX_BSIZE; // 重新賦值計數值,必須大于等于最大可能接收到的數據幀數目

DMA_Cmd(LUMMOD_UART_Rx_DMA_Channel, ENABLE); /* DMA 開啟,等待數

DMA_Cmd(LUMMOD_UART_Rx_DMA_Channel, ENABLE); /* DMA 開啟,等待數據。注意,如果中斷發送數據幀的速率很快,MCU來不及處理此次接收到的數據,中斷又發來數據的話,這里不能開啟,否則數據會被覆蓋。有2種方式解決。

1. 在重新開啟接收DMA通道之前,將LumMod_Rx_Buf緩沖區里面的數據復制到另外一個數組中,然后再開啟DMA,然后馬上處理復制出來的數據。

2. 建立雙緩沖,在LumMod_Uart_DMA_Rx_Data函數中,重新配置DMA_MemoryBaseAddr 的緩沖區地址,那么下次接收到的數據就會保存到新的緩沖區中,不至于被覆蓋。*/

OSMboxPost(mbLumModule_Rx, LumMod_Rx_Buf); // 發送接收到新數據標志,供前臺程序查詢


本站內容除特別聲明的原創文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創文章及圖片等內容無法一一聯系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯系電話:010-82306118;郵箱:aet@chinaaet.com。
主站蜘蛛池模板: 精品无码一区二区三区av | 男女动漫18动漫免费 | 国产一区二区三区 | 久草在线手机视频 | 双腿张开被9个黑人调教影片 | 蜜桃色视频 | 国产第二专区 | 成人国产一区二区三区精品麻豆 | 精品人妻午夜一区二区三区四区 | 久久精品亚洲日本波多野结衣 | 欧美brazzers | 萌白酱国产一区二区 | 青青成人 | 狠狠色综合一区二区 | 免费观看一区二区三区视频 | 日韩欧美中文字幕一区二区 | 女性向av片在线观看免费 | 国产精品视频网 | 亚洲婷婷免费 | 好爽又高潮了毛片免费下载 | 欧洲成人午夜精品无码区久久 | 亚洲综合免费视频 | 牲欲强的熟妇农村老妇女视频 | 国产农村妇女毛片精品久久 | 欧美日韩黄 | 欧美日韩免费在线 | 永无久网址在线码观看 | 国产午夜精品一区二区三区嫩草 | 天堂在线www天堂 | 精品国产自在久久现线拍 | 丝袜美腿av在线 | 久久久久有精品国产麻豆 | 国内精品久久久久影视老司机 | 精品福利在线视频 | 欧美精品久久久久久久监狱 | 日本一道在线 | 97精品人妻一区二区三区香蕉 | 久久在线免费 | 在线精品视频免费观看 | 久操国产精品 | 久久黄色免费视频 | 国产精品伦视频 | 色噜噜狠狠狠狠色综合久一 | 理论片中文字幕在线观看 | 欧美一本 | 天天噜噜噜在线视频 | 天天精品免费视频 | 少妇无码太爽了不卡视频在线看 | 日韩avwww| 精品国产第一区二区三区的特点 | 国模静欣大尺度激情啪啪 | 成人亚洲欧美成αⅴ人在线观看 | 在线观看日韩一区 | 99热99这里只有精品 | 国产视频在线观看一区二区 | 欧美午夜理伦三级在线观看 | 美女自卫网站 | 国产极品美女高潮无套在线观看 | 农村妇女毛片精品久久久 | 好了av在线第四站综合网站 | 一道本毛片 | 永久av免费 | 五月婷婷激情综合网 | 午夜寂寞少妇aaa片毛片 | 污免费在线观看 | 国产成人精品免费视频大全 | av人人干| 久草欧美视频 | 亚洲精品永久www嫩草 | 亚洲欧美日韩在线一区 | 麻豆精产国品 | 婚后打屁股高h1v1调教 | 先锋资源久久 | 天天草夜夜| 日韩精品欧美 | 亚洲国产成人久久综合一区,久久久国产99 | 免费小视频在线观看 | 无套内谢的新婚少妇国语播放 | 台湾一级视频 | 欧美成人精品一区二区男人小说 | 成人免费观看49www在线观看 | 一级视频在线播放 | 亚洲精品久久久久avwww潮水 | 久久婷婷国产综合国色天香 | 精品视频在线一区二区 | 欧美嫩草影院 | 高h1v1翁妇肉乱怀孕 | 亚洲一片| 免费观看又色又爽又黄6699 | 8x8ⅹ国产精品一区二区二区 | 久久久av免费 | 亚洲免费人成 | 精品国产乱码久久久久夜 | 九色在线观看 | 非洲黑人三级全黄 | 中文字幕在线看人 | 亚色中文 | 性生活av| 无码av中文一区二区三区桃花岛 | 国产精品初高中害羞小美女文 | 综合激情亚洲丁香社区 | av免播放器在线观看 | 天天干天天操天天爱 | 国产精品丝袜久久久久久消防器材 | 91ts人妖另类精品系列 | 国产在线精品一区 | 欧美日本中文字幕 | 久久久久有精品国产麻豆 | www.久久婷婷 | 午夜久久网站 | 蜜臀av性久久久久蜜臀aⅴ涩爱 | 狠狠色丁香婷婷综合 | 午夜性色福利在线视频福利 | 狠狠躁天天躁夜夜躁婷婷 | 大胆欧美gogo免费视频一二区 | 国产精品偷伦小说 | 国产精品日韩在线 | 在线天堂中文 | 小宝极品内射国产在线 | 邻居少妇张开双腿让我爽一夜图片 | 狠狠v欧美v日韩v亚洲ⅴ | 性生交生活大片免费看 | 毛片在线看片 | 真人黄色毛片 | a级一片| 免费看片免费播放国产 | 国产一区毛片 | 精品国产片一区二区三区 | 国产精品无码人妻一区二区在线 | 日韩女同强女同hd | 91日韩精品久久久久身材苗条 | 精品国产髙清在线看国产毛片 | 法国极品成人h版 | 337p大胆啪啪私拍人体 | 妺妺窝人体色www聚色窝仙踪 | www黄色网 | 91涩涩涩| 最新日韩av| 高潮喷水抽搐无码免费 | 国产成人无码av片在线观看不卡 | 性猛交ⅹxxx富婆视频 | 亚洲成人精品一区 | 日本精品毛片一区视频播 | 深夜福利网 | 成人年无码av片在线观看 | 日产精品入口 | 99re在线精品 | 麻豆人人妻人人妻人人片av | 台湾佬中文娱乐22vvvv | 国产mv欧美mv日产mv免费 | 欧美综合视频在线 | 久久久精品人妻一区二区三区四 | 久久久91视频 | 人人爽久久涩噜噜噜蜜桃 | 国产第100页 | 久久久久人妻精品一区 | 少妇激情视频一二三区 | 成人乱码一区二区三区av | 翔田千里一区二区 | 精品国产1区2区3区 精品国产31久久久久久 | 日韩啪啪片 | 天天舔天天舔 | 引诱我的邻居少妇在线播放 | 久久久精品久久久久久96 | 一进一出下面喷白浆九瑶视频 | 国产草草影院 | 少妇伦子伦精品无吗在线观看 | 亚洲精品字幕在线观看 | 亚洲免费观看av | 亚洲最大无码中文字幕 | 欧美黄大片 | 麻豆人妻无码性色av专区 | 国产韩国精品一区二区三区 | 亚洲永久免费观看 | 国产精品乱码一区二区三区 | 国产精品内射后入合集 | 亚洲综合精品 | 天天射日日操 | 男人影院在线 | 亚洲美女又黄又爽在线观看 | 国产在线久 | 在线免费黄色网 | 私密按摩massagexxx | 少妇裸交aa大片 | 国产精品无码av无码 | 欧美三级特黄 | 青草青草久热精品视频在线观看 | 人妻少妇被猛烈进入中文字幕 | 日本精品一二三 | 精品日韩一区 | 成人羞羞国产免费游戏 | 亚洲午夜久久久精品一区二区三区 | 国产免费a∨片在线观看不卡 | 老熟女一区二区免费 | 一区二区三区内射美女毛片 | 午夜影院视频 | 日本xxxx丰满人妖学校 | 国产高清视频在线免费观看 | 深夜福利院 | 作爱视频在线 | 亚洲第一成人网站 | 男女做爰猛烈叫床爽爽免费网站 | 精品国产av 无码一区二区三区 | 精品国产91乱码一区二区三区 | 无码精品久久久久久人妻中字 | 人人搞人人爱 | 日日摸夜夜摸狠狠摸婷婷 | 日韩少妇高潮抽搐 | 欧美疯狂性受xxxxx喷水 | 国产femdom调教7777 | 国语自产少妇精品视频蜜桃 | 一本色道久久综合亚洲精品不卡 | 亚洲精品二三区 | 乌克兰美女浓毛bbw 九九久久精品国产 | 美女少妇毛片 | 波多野结衣黄色网址 | 欧美日韩高清免费 | 国产精自产拍久久久久久蜜 | 亚洲 欧美 精品 | 18禁男女爽爽爽午夜网站免费 | 黄色福利网站 | 日韩精品久久无码中文字幕 | 国产精品国产精品国产专区不卡 | 免费黄色日本 | 成年入口无限观看免费完整大片 | 国产簧片 | 91九色中文| 免费福利视频在线观看 | 国产精品三级 | 国内精品人妻无码久久久影院导航 | 欧美成人家庭影院 | 中品极品少妇xxx | 亚洲国产精品无码专区影院 | 欧美视频性 | 五月综合色婷婷 | 国产一级桃视频播放 | 国产精品福利一区二区 | 91不戴套国语对白在线观看 | 久久婷婷五月综合国产尤物app | 美国三级毛片 | 亚洲一区精品在线 | 牛牛影视一区二区三区免费看 | 国产精品视频在线看 | 黄色男人的天堂 | 苍井空浴缸大战猛男120分钟 | 天天躁日日躁狠狠躁免费麻豆 | 久久先锋男人av资源网站 | 免费在线亚洲 | 日韩欧美一卡二卡 | 人人爱操 | 欧美大尺度做爰啪啪免费 | 日韩在线视频免费播放 | 沉溺于黑人叶爱中文字幕 | 狠狠影院 | 欧美日韩一区二区三区精品 | 国产精品久久久乱弄 | 午夜丰满少妇性开放视频 | 日韩一级影视 | 国产精品一卡二卡三卡 | 99精品国产兔费观看久久99 | 精品一区二区三区四区五区六区 | 妺妺窝人体色777777 | 欧美入口 | 成人片黄网站色大片免费 | 久久人妻av无码中文专区 | 四虎在线免费视频 | 在线观看亚洲国产精品 | av片在线免费观看 | 91久久婷婷国产一区二区 | 极品少妇被啪到呻吟喷水 | 在线看无码的免费网站 | 99久久亚洲精品日本无码 | 激情小说在线观看 | 懂色aⅴ精品一区二区三区蜜月 | 国产精品嫩 | 亚洲综合精品在线 | 欧美在线色| 中文字幕不卡视频 | 欧美人在线 | 成人无码av一区二区 | 国产对白叫床清晰在线播放 | 日韩和欧美一区二区 | 玖玖资源站无码专区 | 国产精品欧美亚洲777777 | 日本韩国在线播放 | 精品免费在线视频 | 国产区在线观看视频 | www,色| 精品久久久久久人妻无码中文字幕 | 精品国产一区二区三区久久狼 | 日本精品久久久久中文字幕 | 成人免费观看视频大全 | av成人免费| 国产人妻人伦精品1国产盗摄 | 日本亚洲高清 | 韩国中文字幕在线观看 | 红杏成av人影院在线观看 | 国产精品永久久久久久久久久 | 精品久久久久久18免费网站 | 国产一区二区在 | 免费看的av网站 | 青青草污 | 丰满的继牳3中文字幕系列 丰满的少妇xxxxx人伦理 | av片在线观看免费 | 96国产精品| 黄频在线| 国产精品网友自拍 | 日本不卡网站 | 狠狠干狠狠操 | 色一情一乱一伦一视频免费看 | 久久久无码人妻精品无码 | 久久久久久久久毛片精品 | 东北少妇高潮抽搐 | 国内久久久久 | 欧美日韩不卡合集视频 | 麻豆国产一区二区三区四区 | 国产精品一区在线观看你懂的 | 亚洲s码欧洲m码吹潮 | 在线播放成人av | 日韩精品免费一区二区三区 | 国产精品久久久久久久蜜臀 | 嫩草影院在线视频 | 久久久久久久成人 | 日本www一道久久久免费榴莲 | 久久综合给合久久狠狠狠97色69 | 日本少妇一区二区 | 欧美jizzhd精品欧美丰满 | 久久婷婷国产麻豆91 | 911亚洲精品| 人人爽人人澡人人人妻 | 国产欧美一区二区精品忘忧草 | 欧美黑人xxxⅹ高潮交 | 日本成片网 | 91精品国产综合久久精品 | 伊人国产在线观看 | 久久www免费人成_网站 | 国产高清视频网站 | 亚洲日韩av一区二区三区中文 | 又长又硬又粗一区二区三区 | 欧美jizzhd精品欧美丰满 | 性生生活又硬又黄又爽 | 亚洲成a∨人片在无码2023 | 亚洲国产精华液网站w | 人妻有码av中文字幕久久琪 | 成人精品亚洲 | 男人天堂va | 国精无码欧精品亚洲一区 | 一卡二卡三卡在线视频 | 少妇淫交裸体视频 | 国产嗷嗷叫 | 91视频插插插 | 日韩精品一卡二卡 | 亚洲伦理在线观看 | 136微拍宅男导航在线 | 久久99国产综合精品免费 | 男女啪啪免费体验区 | 国产区精品一区二区不卡中文 | 9热在线| 免费黄色a | 黄色av免费在线播放 | 欧美国产高清 | 狠狠躁夜夜躁人人爽天天bl | 337p人体粉嫩胞高清视频 | 日产欧产美韩系列在线播放 | 超碰97人 | 国产黄色片免费观看 | 日韩欧美在线精品 | 91久久婷婷国产一区二区三区 | 国产精品黄在线观看免费软件 | 人人人妻人人澡人人爽欧美一区 | 国产日本欧美在线 | 色婷婷影院 | 特级黄色视频毛片 | 男女互操视频网站 | 国产精品毛多多水多 | 成色网| 日韩欧美亚洲精品 | 青青草国内自拍 | 手机在线精品视频 | 欧美亚洲视频在线观看 | 天天干天天做 | 午夜三级在线 | 57pao成人国产永久免费视频 | 日本欧美视频在线观看 | 538精品视频在线播放 | 国产一级特黄aa大片出来精子 | 男主和女配啪慎入h闺蜜宋冉 | 欧美在线观看成人 | 国产一级片免费在线观看 | 1688成人免费视频观看 | 精品免费国产一区二区三区四区 | 久久久久国产精品夜夜夜夜夜 | 久久岛国 | 欧美 亚洲 另类 偷偷 自拍 | 亚洲精品色综合av网站 | 欧美老熟妇欲乱高清视频 | 免费中文字幕 | 亚洲精品中文字幕乱码三区91 | 两男一女3p揉着她的奶视频 | 久久婷婷色 | 久久精品999 | 亚洲性视频 | 精品无码一区二区三区电影 | 欧美日韩国产成人在线 | 久久久久久久女国产乱让韩 | 91精品国产人妻国产毛片在线 | 777米奇影院狠狠色 一日本道a高清免费播放 | 午夜免费精品 | 一级免费看 | 最新99热| 国产亚洲欧美在线专区 | 夜夜影院未满十八勿进 | 国产成人一区二区三区小说 | 国产裸体bbb视频 | 中文在线免费看视频 | 色翁荡息又大又硬又粗又爽电影 | 一 级做人爱全视频在线看 亚洲成a∨人片在线观看不卡 | 国产玉足榨精视频在线观看 | 无码av波多野结衣久久 | 国产主播一区二区三区 | 老司机午夜免费福利 | 国产福利一区二区三区在线视频 | 国产免费黄色av | 日韩精品在线观看网站 | 红杏亚洲影院一区二区三区 | 少妇爽| 中文字幕一区二区av | jlzzjlzz欧美大全 | 亚洲奶汁xxxx哺乳期 | 黑人巨大av| 综合激情在线 | 91快射| 黑人狂躁中国少妇and | 爱草av| 亚洲欧美日韩久久精品 | 日本少妇裸体做爰高潮片 | 日本亚州视频在线八a | 亚洲国产精品一区二区久久 | 日韩福利网 | 日本无遮挡真人祼交视频 | 99热免费在线观看 | 超碰av导航 | 91婷婷在线| 国产在线精品成人免费怡红院 | 国产精品久久久久久久久久98 | 亚洲免费观看视频 | 人妻教师痴汉电车波多野结衣 | 亚洲www啪成人一区二区 | 欧美色图首页 | 国产一二三四在线视频 | 国产精品777 | 成人美女免费网站视频 | 2020av视频| 日韩欧美人妻一区二区三区 | 亚洲国产精品久久久久久久 | 国产农村妇女精品 | 欧美成人在线视频 | 日韩精品无码一区二区 | 亚洲啪| 国产又粗又硬又黄的视频 | 国产成人精品亚洲日本在线观看 | 人人妻人人澡人人爽欧美一区 | 亚洲欧洲av无码专区 | 东京热加勒比无码少妇 | 亚洲国产一区二区a毛片 | 超碰99在线 | 2区3区在线涩网涩 | 大色综合 | 久久久久久久99精品免费观看 | 少妇精品偷拍高潮白浆 | 欧美激情欲高潮视频在线观看 | 欧美××××黑人××性爽 | 高h禁伦餐桌上的肉伦水视频 | 性乌克兰xxxx极品 | 男人天堂av在线播放 | 久久人人爽人人爽人人片 | 欧美综合久久久 | 中文字幕精品亚洲无线码一区应用 | ass色喜ass国模人体 | 91精品久久久久久久久久入口 | 欧美xxxx8888| 国产午夜精品一区二区三区漫画 | 精品乱码一区内射人妻无码 | 91二区| 免费一二三区 | 国产中文字幕91 | 亚洲成av人片在线观看无 | 欧美xxxx视频 | 国产永久在线观看 | 国产精品36p | 欧美成人一区二免费视频软件 | 亚洲黄页| 国产又粗又猛又爽又黄的视频文字 | 日本一区二区三区四区在线观看 | 一级免费大片 | 亚婷婷洲av久久蜜臀小说 | 国产97色在线 | 免费 | 国产精品永久免费视频 | 免费网站观看www在线观 | 亚洲成aⅴ人片久青草影院 亚洲无av码一区二区三区 | 日本三级日产三级国产三级 | 中文字幕+乱码+中文字幕一区 | 成人三级a做爰视频哪里看 成人三级k8经典网 成人三级黄色 | 亚洲熟妇av日韩熟妇在线 | 亚洲国产精品一区二区美利坚 | 秋霞在线播放视频 | 亚洲黄色小视频 | 日本中文字幕有码 | 久久成人在线视频 | 中文字幕 欧美激情 | 青草成人| 一本大道久久a久久精品综合1 | 69久久国产露脸精品国产 | 久久久成人免费 | 亚洲精品www久久久久久 | 精品无码专区久久久水蜜桃 | 国产精品高潮呻吟久久av野狼 | 水蜜桃无码视频在线观看 | 露出调教羞耻91九色 | 88国产精品视频一区二区三区 | 国产欧美一区二区三区免费 | 青青草一区二区 | 国产一级免费av | 国产成人精品免费视频大全最热 | 亚洲青草视频 | 天干夜天干天天天爽2022 | 就去色综合 | 国产精品社区 | 性欧美视频 | 亚洲一级一级一级 | 精品久久久久久久人人人人传媒 | 二区在线观看 | 九九久久精品无码专区 | 天天插天天爱 | 色综合色狠狠天天综合色 | 大肉大捧一进一出好爽视色大师 | 日韩国产精品视频 | 欧美精品一区二区在线观看 | 精品成人| 成人一区二区毛片 | 中文在线一区二区三区 | 天天做天天摸天天爽天天爱 | 青青草成人免费在线视频 | jyzz中国jizz十八岁免费 | 免费观看的av | 国产精品wwwdhxxx | 日本xxxxx九色视频在线观看 | 处破大全欧美破苞二十三 | 国产绿帽口舌视频vk | 999精品在线 | 国产大陆亚洲精品国产 | 国产成人免费看一级大黄 | 我色综合| 超碰黑丝 | 九九九九精品九九九九 | 久久久久久美女 | 欧美日韩八区 | 精品免费二区三区三区高中清不卡 | 少妇饥渴偷公乱第95 | 色哟哟国产精品免费观看 | 在线观看免费www | 永久免费观看av | 69久久久久久 | 久久三级黄色片 | 在线观看不卡av | 亚洲欧美综合区丁香五月小说 | 久久久天天 | 三区四区 | 黄色成人av网站 | 男女啪啪猛烈无遮挡猛进猛出 | 理论片87福利理论电影 | 久久久99精品免费观看 | 特级淫片裸体免费看视频 | av无码人妻中文字幕 | 日韩精品在线视频 | 精品美女一区二区三区 | 日韩一区二区三区av | 欧美色就是色 | 天天综合亚洲综合网天天αⅴ | 亚洲精品久久30p | 日韩三级av在线 | 国产精品久久久久久亚洲影视 | 中文字幕啪啪 | 久久大| 中文字幕一区二区三区四区久久 | 张警花视频99精品视频 | 国产精成人品 | 丁香六月在线 | 免费在线观看a级片 | 国产永久在线观看 | 中国老妇淫片bbb | 精品乱码一区二区三四区视频 | 国产人妻精品区一区二区三区 | 少妇饥渴放荡91麻豆 | 香港三级网站 | 亚洲国产欧美一区二区潘金莲 | 国产午夜av秒播在线观看 | www.爱色av.com| 日韩专区一区 | 亚州欧美 | 国产99久久久久久免费看农村 | 成人一区二| 精品日产乱码久久久久久仙踪林 | 国内激情 | 日本韩国毛片 | 久久人妻公开中文字幕 | 国内露脸少妇精品视频 | 免费看美女隐私网站 | 国产福利一区二区三区在线视频 | 久久精品国产一区二区三区不卡 | 国产伦精品视频一区二区三区 | 免费观看色 | av2014天堂| 亚洲精品一区中文字幕 | 天天爽天天爽天天爽 |