免费国产精品自在自线-91精品国产色综合久久久浪潮-99热久久免费频精品-国产精品国模在线观看-久久亚洲国产精品成人?V秋霞-久久国产一级A片免费播放-亚洲国产欧洲综合97久久-久久国产白嫩美女呻吟高潮

ARTICLE DETAIL

資訊詳情

深耕商務建站與企業(yè)官網(wǎng)運營的一線實戰(zhàn)洞察。

雙串口MODBUS+DMA+FIFO:STM32從站RS-485數(shù)據(jù)不丟的實現(xiàn)方案

雙串口MODBUS+DMA+FIFO:STM32從站RS-485數(shù)據(jù)不丟的實現(xiàn)方案 簡介雙串口MODBUSDMAFIFO完整工程面向需要實現(xiàn)MODBUS多從機通信與串口高效收發(fā)的STM32開發(fā)者。工程基于FREEMODBUS庫在雙串口場景下引入DMA與FIFO緩沖機制降低CPU負載、保證數(shù)據(jù)有序性可應用于工業(yè)自動化設備、物聯(lián)網(wǎng)節(jié)點等對實時性要求較高的場景。資源包共收錄1220個文件壓縮后僅9.2MB以C/H源碼和工程配置文件為主除約900個源碼文件外還包含STM32CubeMX的.ioc/.mxproject配置、IAR/Keil工程文件、.a/.lib靜態(tài)庫、.hex/.axf構(gòu)建產(chǎn)物以及md/txt說明文檔目錄層次清晰便于對照學習和移植。目前已有1013人學習瀏覽。通過該工程讀者可以直接獲取雙串口DMAFIFO收發(fā)框架、FREEMODBUS從機配置方法、多從機交互邏輯和完整可編譯工程適合作為Modbus協(xié)議棧二次開發(fā)或串口性能優(yōu)化的參考樣例。1. 雙串口MODBUSDMAFIFO到底解決什么問題雙串口MODBUSDMAFIFO這套資源解決的不是“怎么把Modbus代碼復制兩份”的問題而是“兩條RS-485總線同時壓到同一臺從站上數(shù)據(jù)怎么不丟”的問題?,F(xiàn)場很常見1號總線的主站下發(fā)參數(shù)2號總線的主站輪詢運行數(shù)據(jù)兩邊從站地址不同、波特率還不一樣。如果靠串口中斷一字節(jié)一字節(jié)收主程序一進臨界區(qū)或者Flash一擦寫立刻丟字節(jié)。我拆完這套資源后的感受是兩路串口各配一個DMA接收通道用空閑中斷IDLE判定Modbus幀結(jié)束再把DMA緩沖區(qū)里的字節(jié)倒進統(tǒng)一的FIFO隊列交給FreeModbus按幀解析中斷次數(shù)能降一個數(shù)量級。適合手里有STM32從站工程、想把中斷收數(shù)換成DMA收數(shù)的人直接拆改。2. 模塊怎么搭雙串口、DMA、FIFO三者的分工與順序2.1 為什么全中斷接收在雙串口下容易翻車Modbus RTU 的幀邊界很脆弱協(xié)議規(guī)定兩幀之間至少 3.5 個字符時間的靜默幀內(nèi)字符必須連續(xù)。一幀最長 256 字節(jié)按 115200bps 8N1 計算一個字節(jié)位時間約 86.8μs3.5 個字符約 304μs。也就是說整個串口在等字節(jié)的過程中CPU 被迫跟著字節(jié)節(jié)奏走完全沒有彈性。最常見的單字節(jié)中斷收數(shù)代碼長這樣void UARTx_IRQHandler(void) { uint8_t ch; if (__HAL_UART_GET_FLAG(huartx, UART_FLAG_RXNE) ! RESET) { ch (uint8_t)(huartx.Instance-RDR 0xFF); ring_fifo_push(rx_fifo_x, ch); /* 每來一個字節(jié)就壓一次隊列 */ __HAL_UART_CLEAR_FLAG(huartx, UART_FLAG_RXNE); } }這段代碼看著沒問題實際在雙串口時會暴露出兩類開銷一次中斷現(xiàn)場保護壓棧出棧幾十個周期兩次中斷之間還有不可裁剪的調(diào)度窗口。更麻煩的是兩個串口共享同一中斷優(yōu)先級時一旦 1 號總線連續(xù)發(fā)幀2 號總線的字節(jié)會在嵌套向量表里排隊等 1 號把一幀收完2 號硬件接收移位寄存器已經(jīng)被新字節(jié)覆蓋——ISR 沒來得及讀數(shù)據(jù)就沒了。工業(yè)現(xiàn)場還有更隱蔽的情況操作系統(tǒng)臨界區(qū)、Flash 擦寫、調(diào)試打印都會關中斷。實測關中斷 2ms 后9600 波特率下會丟 2 到 3 個字節(jié)。DMA 的價值在于“中斷延遲期間字節(jié)被外設自動搬到內(nèi)存”FIFO 的價值在于“搬過來的字節(jié)還要按順序喂給 Modbus 解析不能一次全推給協(xié)議棧”。這也是這套資源把 DMA 和 FIFO 綁在一起的原因。2.2 推薦接收鏈路DMA 搬字節(jié)IDLE 定幀尾FIFO 排隊整套鏈路拆開看是五段外設字節(jié)進入 RX DMADMA 連續(xù)寫入收發(fā)緩沖區(qū)串口產(chǎn)生 IDLE 空閑中斷時暫停 DMA軟件把緩沖區(qū)中已接收的字節(jié)拷貝進 FIFO應用層再從 FIFO 拉數(shù)據(jù)交給 FreeModbus 分包解析。收數(shù)方式CPU 占用抗中斷延遲幀邊界檢測單字節(jié)中斷最高差RXNE 沒及時讀就丟額外軟件定時器定時器輪詢 RDR中一般字節(jié)被覆蓋風險超時近似DMA 空閑中斷 FIFO低強DMA 自動保存IDLE 中斷天然定位關于 IDLE 中斷要說明一點串口在一個字節(jié)時間內(nèi)沒有收到新的起始位就會拉高 IDLE 標志。Modbus 幀內(nèi)字節(jié)不允許出現(xiàn)這種間隙所以 IDLE 經(jīng)常被當作“幀結(jié)束”的標志。對 115200 而言一個字節(jié)空隙約 87μs小于協(xié)議要求的 3.5 字符時間只要主站字節(jié)間不間斷IDLE 不會被誤觸發(fā)。唯一例外是波特率很低或主站軟件發(fā)送不連貫這類情況后面避坑章節(jié)單獨處理。2.3 雙串口并發(fā)為什么拷貝入 FIFO 不用加鎖兩個串口各自使用獨立的 DMA 通道、獨立的接收緩沖區(qū)和獨立的 FIFO內(nèi)存地址完全不重疊。即便兩條總線同時來幀寫的是不同區(qū)域裸機環(huán)境下不需要互斥鎖。這套資源的文件結(jié)構(gòu)也是這樣設計的兩個 FIFO 獨立應用層有一個統(tǒng)一的輪詢?nèi)肟凇?define UART1_RX_FIFO_SIZE 512 #define UART2_RX_FIFO_SIZE 512 static uint8_t uart1_rx_dma_buf[UART1_RX_FIFO_SIZE]; static uint8_t uart2_rx_dma_buf[UART2_RX_FIFO_SIZE]; static uint8_t uart1_fifo_mem[UART1_RX_FIFO_SIZE]; static uint8_t uart2_fifo_mem[UART2_RX_FIFO_SIZE]; static ring_fifo_t fifo_uart1 { .buf uart1_fifo_mem, .size UART1_RX_FIFO_SIZE }; static ring_fifo_t fifo_uart2 { .buf uart2_fifo_mem, .size UART2_RX_FIFO_SIZE };這里有三個 512 字節(jié)的數(shù)組分別是 DMA 原始緩沖區(qū)和 FIFO 存儲區(qū)。為什么兩個大小一致因為 DMA 一輪最多搬運的數(shù)據(jù)量不會超過 FIFO 容量如果 FIFO 比 DMA 緩沖區(qū)小IDLE 中斷里拷貝時會丟數(shù)據(jù)。如果只跑一個從站256 字節(jié)也夠雙從站且主站頻繁讀多寄存器時512 更穩(wěn)。3. FreeModbus移植與雙串口初始化能抄的代碼和參數(shù)3.1 移植 FreeModbus 時改哪幾個 port 函數(shù)FreeModbus 的串口移植集中在 portserial.c 里核心就是下面幾個函數(shù)函數(shù)作用這套資源的改法xMBPortSerialInit初始化串口與 DMA啟動 HAL_UART_Receive_DMA 接收xMBPortSerialGetByte從 FIFO 取一個字節(jié)ring_fifo_pop(rx_fifo[port])xMBPortSerialPutByte發(fā)送單字節(jié)拉高 DE寫 DR 或走 DCA 發(fā)送xMBPortSerialEnableIrq使能收發(fā)中斷使能 IDLE 中斷發(fā)送完成后關 DEvMBPortSerialClose關閉端口停 DMA關中斷移植的坑通常在 xMBPortSerialPutByte。Modbus 是半雙工協(xié)議發(fā)送前要把 RS-485 方向引腳拉高發(fā)完再拉低。如果只發(fā)一個字節(jié)就立刻拉低最后一個字節(jié)的停止位還在線上對端收到的幀就短了一截。3.2 雙串口的 DMA 初始化與參數(shù)選擇初始化代碼可以直接抄重點看 DMA 通道選擇和傳輸模式void BSP_UART_DMA_Init(void) { /* USART1 接收 DMA默認 NORMAL 模式由 IDLE 觸發(fā)停止 */ hdma_uart1_rx.Instance DMA1_Channel5; /* 按實際型號改 */ hdma_uart1_rx.Init.Direction DMA_PERIPH_TO_MEMORY; hdma_uart1_rx.Init.PeriphInc DMA_PINC_DISABLE; hdma_uart1_rx.Init.MemInc DMA_MINC_ENABLE; hdma_uart1_rx.Init.PeriphDataAlignment DMA_PDATAALIGN_BYTE; hdma_uart1_rx.Init.MemDataAlignment DMA_MDATAALIGN_BYTE; hdma_uart1_rx.Init.Mode DMA_NORMAL; __HAL_LINKDMA(huart1, hdmarx, hdma_uart1_rx); /* USART2 接收 DMA通道換掉其他參數(shù)一致 */ hdma_uart2_rx.Instance DMA1_Channel6; hdma_uart2_rx.Init.Direction DMA_PERIPH_TO_MEMORY; hdma_uart2_rx.Init.PeriphInc DMA_PINC_DISABLE; hdma_uart2_rx.Init.MemInc DMA_MINC_ENABLE; hdma_uart2_rx.Init.PeriphDataAlignment DMA_PDATAALIGN_BYTE; hdma_uart2_rx.Init.MemDataAlignment DMA_MDATAALIGN_BYTE; hdma_uart2_rx.Init.Mode DMA_NORMAL; __HAL_LINKDMA(huart2, hdmarx, hdma_uart2_rx); HAL_UART_Receive_DMA(huart1, uart1_rx_dma_buf, UART1_RX_FIFO_SIZE); HAL_UART_Receive_DMA(huart2, uart2_rx_dma_buf, UART2_RX_FIFO_SIZE); __HAL_UART_ENABLE_IT(huart1, UART_IT_IDLE); __HAL_UART_ENABLE_IT(huart2, UART_IT_IDLE); }兩個關鍵參數(shù)要說明。第一方向必須是 DMA_PERIPH_TO_MEMORY外設地址不自增內(nèi)存地址自增第二模式用 DMA_NORMAL 而不是 DMA_CIRCULAR。這套資源的思路是“收滿一幀就?!钡?IDLE 中斷把數(shù)據(jù)處理完再重新調(diào)用 HAL_UART_Receive_DMA 啟動下一輪。如果用 CIRCULAR 模式緩沖區(qū)會被自己的寫入指針反復覆蓋IDLE 中斷里取數(shù)據(jù)時可能已經(jīng)丟了一截。另外注意 HAL 庫的 HAL_UART_Receive_DMA 會把 huart 的 RxState 置為 BUSY如果 IDLE 中斷里先停 DMA、拷貝數(shù)據(jù)、再重新啟動必須確保上一次調(diào)用已經(jīng)返回 HAL_OK否則會卡在 HAL_BUSY 上。3.3 雙從站地址路由與輪詢邏輯FreeModbus 原生只抽象一個串口雙串口時我習慣做一層獨立的幀分發(fā)不強行套兩個協(xié)議棧實例。思路是先各自從 FIFO 提取完整幀校驗 CRC 后比對從站地址命中哪一路就走哪一路的應答邏輯void MODBUS_Poll(void) { uint16_t len1 0, len2 0; len1 modbus_frame_extract(fifo_uart1, rx_frame[0]); len2 modbus_frame_extract(fifo_uart2, rx_frame[1]); if (len1 0 rx_frame[0].addr slave_addr[0]) { modbus_dispatch(rx_frame[0]); } if (len2 0 rx_frame[1].addr slave_addr[1]) { modbus_dispatch(rx_frame[1]); } }modbus_frame_extract 的邏輯是從 FIFO 里逐字節(jié)彈出邊彈邊算 CRC16直到幀長度超過 4 字節(jié)且 CRC 校驗通過才算拿到一幀完整數(shù)據(jù)。這樣做的優(yōu)勢在于兩條串口互不阻塞1 號總線上一幀 100 字節(jié)的讀操作不會延誤 2 號總線的寫操作。地址路由有個容易忽略的點如果兩條總線上主站恰好用相同從站地址就要在 modbus_dispatch 里帶總線編號參數(shù)應答時找對應的發(fā)送串口和 DE 引腳而不是用全局變量。3.4 RS-485 方向切換和發(fā)送完成判斷發(fā)送方向的切換我一般放在 FreeModbus 的 xMBPortSerialEnableIrq 回調(diào)里void vMBPortSerialEnable(BOOL xRxEnable, BOOL xTxEnable) { if (xTxEnable) { RS485_DE_WRITE(1); /* 拉高 DE進入發(fā)送模式 */ __HAL_UART_ENABLE_IT(huart_send, UART_IT_TC); } else { /* 不能在這里立刻拉低 DE要等發(fā)送完成中斷 */ } }TC 中斷意味著 TDR 寄存器已空但移位寄存器里的最后一個字節(jié)可能還在線上。如果 TC 一到就關 DE總線上的幀尾會被截掉。常見做法是在 TC 中斷里做幾十到一百微秒的延時再關void UART_TC_Callback(void) { volatile uint32_t delay; for (delay 0; delay 120; delay); /* 粗略延時按主頻微調(diào) */ RS485_DE_WRITE(0); }這個延時不追求精確只要大于一個字符的位時間即可。比如 9600 波特率下一個字符約 1.04ms115200 下約 87μs延時 120 個循環(huán)在常見主頻下約幾十微秒到一百微秒勉強覆蓋高速場景。嚴謹做法是按系統(tǒng)時鐘算周期但資源包里的實現(xiàn)通常就是這樣粗調(diào)現(xiàn)場夠用。4. FIFO緩沖與幀邊界判斷把 DMA 搬運的字節(jié)按幀喂給協(xié)議棧4.1 環(huán)形 FIFO 實現(xiàn)與“容量必須是 2 的冪”環(huán)形 FIFO 的代碼很短但容量有個硬性約束必須寫成 2 的冪。原因很簡單取余操作可以換成位與省掉除法指令typedef struct { uint8_t *buf; volatile uint16_t head; /* 寫指針 */ volatile uint16_t tail; /* 讀指針 */ uint16_t size; /* 必須是 2 的冪 */ volatile uint16_t len; /* 當前數(shù)據(jù)長度 */ } ring_fifo_t; static inline uint16_t ring_fifo_count(const ring_fifo_t *f) { return f-len; } static inline uint8_t ring_fifo_push(ring_fifo_t *f, uint8_t b) { if (f-len f-size) { return 0; /* 滿丟棄新字節(jié) */ } f-buf[f-head] b; f-head (f-head 1) (f-size - 1); f-len; return 1; } int ring_fifo_pop(ring_fifo_t *f, uint8_t *b) { if (f-len 0) { return 0; } *b f-buf[f-tail]; f-tail (f-tail 1) (f-size - 1); f-len--; return 1; }代碼里有兩個細節(jié)。第一head 和 tail 都用了 volatile因為寫指針在 IDLE 中斷里被修改讀指針在應用層任務里被修改第二len 字段用來判斷空和滿比直接用 head tail 判斷更可靠避免空和滿兩種狀態(tài)混淆。我把 512 字節(jié)的 FIFO 用在雙串口上原因是 Modbus 最長幀 256 字節(jié)DMA 一輪最多搬 256 字節(jié)FIFO 至少要是 DMA 緩沖區(qū)的兩倍才能容忍應用層解析稍慢時的積壓。4.2 IDLE 中斷里的 DMA 停收與數(shù)據(jù)搬運IDLE 中斷是這套資源的主心骨。進來之后先停 DMA再取計數(shù)器最后把數(shù)據(jù)搬進 FIFOvoid UART_Idle_IRQHandler(UART_HandleTypeDef *huart, ring_fifo_t *fifo, uint8_t *dma_buf, uint16_t dma_size) { uint16_t dma_index; if (__HAL_UART_GET_FLAG(huart, UART_FLAG_IDLE) RESET) { return; } __HAL_UART_CLEAR_FLAG(huart, UART_FLAG_IDLE); /* 關鍵先停 DMA再讀計數(shù)器否則數(shù)據(jù)還在寫入 */ __HAL_DMA_DISABLE(huart-hdmarx); /* 當前 DMA 已搬了多少字節(jié) */ dma_index dma_size - (uint16_t)__HAL_DMA_GET_COUNTER(huart-hdmarx); for (uint16_t i 0; i dma_index; i) { ring_fifo_push(fifo, dma_buf[i]); } /* 清空緩沖區(qū)重新啟動下一輪接收 */ memset(dma_buf, 0, dma_size); HAL_UART_Receive_DMA(huart, dma_buf, dma_size); }一定不要把 __HAL_DMA_DISABLE 放到讀取 CNDTR 之后。DMA 在 IDLE 中斷入口處可能還在響應最后一次 RXNE 請求如果先讀計數(shù)器再停 DMA讀出的值可能偏大或偏小導致搬運錯位。先停再讀雖然多花幾個周期但數(shù)據(jù)是穩(wěn)定的。還有一個細節(jié)HAL_UART_Receive_DMA 在 DMA 停掉之后調(diào)用需要重新設置傳輸長度。如果上一步的 DMA 已經(jīng)搬完 512 字節(jié)且沒有觸發(fā) IDLE這里的 HAL_UART_Receive_DMA 會因為 huart-RxState 仍為 BUSY 而返回錯誤。所以建議在調(diào)用前把 huart-RxState 強制復位或者直接復用底層 API 重新配置。4.3 幀邊界3.5 字符靜默靠 IDLE 還是靠定時器IDLE 中斷在大多數(shù)情況下夠用但遇到“主機字節(jié)間有微小停頓”時會誤判。比如 PC 串口工具做主站發(fā)送緩沖區(qū)刷新不及時幀內(nèi)兩個字節(jié)之間出現(xiàn)超過一個字符時間的空閑IDLE 就會提前觸發(fā)。低速 9600 波特率時3.5 個字符約 3.6ms遠大于一個字符時間IDLE 反而不容易誤判高速 115200 時一個字符約 87μs如果主站軟件在字節(jié)間停頓超過 87μsIDLE 就會把一幀拆成兩幀。穩(wěn)妥做法是加一個定時器輔助判定。每個字節(jié)進入 FIFO 時記錄時間應用層定期檢查如果當前時間與最后字節(jié)時間差超過 3.5 字符時間就認為幀結(jié)束把 FIFO 里剩余數(shù)據(jù)當作一幀處理#define MB_35C_TICK(baud) ((uint32_t)(35000000UL / (uint32_t)(baud))) static uint32_t last_rx_tick[2]; void Modbus_Frame_Check_Timer(void) { uint32_t now HAL_GetTick(); if ((now - last_rx_tick[0]) MB_35C_TICK(9600) ring_fifo_count(fifo_uart1) 0) { modbus_frame_dispatch(fifo_uart1); } if ((now - last_rx_tick[1]) MB_35C_TICK(9600) ring_fifo_count(fifo_uart2) 0) { modbus_frame_dispatch(fifo_uart2); } }這套資源里保留了兩種邊界判定默認走 IDLE注釋里留有定時器分支。我自己的習慣是波特率大于 57600 時用 IDLE低于 19200 時用定時器。因為高速時字節(jié)間隔短IDLE 觸發(fā)更靈敏低速時 3.5 字符時間足夠長定時器判定更符合協(xié)議定義。4.4 FIFO 容量選多大、溢出怎么辦不同波特率下推薦容量參考波特率推薦 FIFO 大小理由9600128幀間隔長應用層來得及處理38400256一幀最長 256留一幀余量115200512雙串口同時到達時防積壓9216001024DMA 連續(xù)搬運量更大溢出時我傾向保留舊數(shù)據(jù)、丟棄新字節(jié)。原因是 Modbus 從站本身不負責重傳主站超時后會重發(fā)完整幀丟掉新字節(jié)最多導致當前幀解析失敗保留舊數(shù)據(jù)能保證之前已經(jīng)對齊的幀不受影響。每個 FIFO 里維護一個溢出計數(shù)方便調(diào)試時觀察是否經(jīng)常超出容量。5. 雙串口避坑記錄五個我親眼見過的坑5.1 IDLE 在長幀中間觸發(fā)把一幀拆成兩幀現(xiàn)象主站一次讀 20 個保持寄存器從站卻解析出兩幀一幀 CRC 錯誤另一幀長度不對。原因主站是 PC 串口調(diào)試工具發(fā)送緩沖刷新不及時幀內(nèi)字節(jié)之間出現(xiàn)了超過一個字符時間的空閑。UART 的 IDLE 標志在“線空閑滿一個字符時間”時就會置位協(xié)議??吹?IDLE 就認為幀結(jié)束。解決不要只依賴 IDLE。把第四章的定時器輔助判定打開或者把主站側(cè)換成帶連續(xù)發(fā)送模式的設備。排查時先用示波器抓總線波形看字節(jié)之間是否有超過一個字符寬度的空閑段。5.2 DMA 計數(shù)器還沒讀就被下一次接收改寫現(xiàn)象IDLE 中斷里讀 CNDTR 得到 10實際 DMA 緩沖區(qū)里只有 6 個字節(jié)是有效的幀頭被吞掉。原因IDLE 中斷響應有延遲進入 ISR 時 DMA 尚未完全停住UART 的 RXNE 又觸發(fā)了一次 DMA 請求CNDTR 繼續(xù)遞減。解決ISR 第一行必須先 __HAL_DMA_DISABLE再讀 __HAL_DMA_GET_COUNTER。同時把該 DMA 通道的半傳輸中斷關掉避免 HT 中斷和 IDLE 中斷同時操作 CNDTR造成競態(tài)。5.3 復位后第一個字節(jié)被當成幀頭整條總線判錯現(xiàn)象設備上電后主站第一次讀數(shù)據(jù)返回的幀總是錯一個字節(jié)之后恢復正常。原因DMA 緩沖區(qū)里殘留上電默認值 0xFF復位后 DMA 在應用層初始化之前就開始搬運了緩沖區(qū)里混進了無效字節(jié)。協(xié)議棧把這些 0xFF 當成幀頭解析自然出錯。解決初始化 DMA 之前先 memset 接收緩沖區(qū)為 0x00再把 FIFO 清空最后啟動 HAL_UART_Receive_DMA。另外確認復位后 UART 的 RXNE 不會在 DE 拉低之前觸發(fā)數(shù)據(jù)讀取。5.4 兩個串口的 DE 控制互相干擾兩條 RS-485 總線上打架現(xiàn)象1 號總線讀數(shù)據(jù)時2 號總線上的電平抖動從站響應幀出現(xiàn)移位和損壞。原因兩個串口共用了同一個方向控制引腳或者驅(qū)動板上的收發(fā)器方向控制信號是反邏輯的。代碼里把 DE 拉高時兩條總線的 DE 同時被拉高兩個收發(fā)器同時驅(qū)動總線。解決確認兩路 RS-485 使用獨立的 DE 引腳如果硬件已經(jīng)共用只能把兩路收發(fā)器的方向控制接到不同的 GPIO并在代碼里分別控制。調(diào)試時用萬用表量兩個 DE 引腳的電平能立刻發(fā)現(xiàn)問題。5.5 發(fā)送 DE 關早了響應幀最后一個字節(jié)被截斷現(xiàn)象從站自檢認為已發(fā)送完畢主站收到的響應幀長度少一字節(jié)CRC 校驗不過。原因TC 中斷觸發(fā)條件是 TDR 已空但不代表移位寄存器已空。此時最后一位可能還在線上立刻拉低 DE 會把停止位截掉。解決TC 中斷里做短延時再拉低 DE或者等 TXE 和 TC 兩個標志都成立再加半個字符時間的延時。按波特率 115200 計算延遲 50μs 就足夠覆蓋最后一位輸出。6. 進階把 FIFO 統(tǒng)計狀態(tài)放進 Modbus 寄存器當驗收指標6.1 用保持寄存器開放內(nèi)部狀態(tài)雙串口從站調(diào)試最頭疼的是“丟幀了但不知道怎么丟的”。我習慣在項目里加四個保持寄存器把 FIFO 溢出次數(shù)、CRC 錯誤次數(shù)、DMA 恢復次數(shù)、IDLE 觸發(fā)次數(shù)映射到寄存器地址uint16_t stat_regs[4]; #define REG_FIFO_OVERRUN_CNT 0 /* FIFO 溢出次數(shù) */ #define REG_RX_CRC_ERR_CNT 1 /* CRC 校驗失敗次數(shù) */ #define REG_DMA_RECOVER_CNT 2 /* DMA 重新啟動次數(shù) */ #define REG_IDLE_CNT 3 /* IDLE 中斷次數(shù) */ uint16_t read_stat_reg(uint8_t reg_idx) { return stat_regs[reg_idx]; }把這組寄存器掛到 FreeModbus 的保持寄存器回調(diào)里主站通過標準 03H 功能碼就能讀到。驗收時先讓主站持續(xù)輪詢一小時如果 FIFO 溢出計數(shù)不斷增長說明應用層消費速度跟不上如果 IDLE 觸發(fā)次數(shù)遠大于實際幀數(shù)量說明字節(jié)間空隙過大應該改定時器邊界判定。6.2 雙串口互測的自檢技巧沒有兩條獨立總線時可以用一根杜邦線把 UART1 的 TX 和 UART2 的 RX 短接反過來也一樣。程序里定時從 UART1 發(fā)一條標準讀保持寄存器請求再由 UART2 的 FIFO 接收并回包驗證兩路鏈路是否正常void Modbus_SelfTest_Tick(void) { uint8_t req[8] {0x01, 0x03, 0x00, 0x00, 0x00, 0x02, 0xC4, 0x0B}; UART1_SendBytes(req, 8); /* 發(fā)到 UART1 總線 */ HAL_Delay(20); if (ring_fifo_count(fifo_uart2) 0) { stat_regs[REG_RX_CRC_ERR_CNT]; } }這里 CRC 值是固定的所以測試幀不需要額外計算。如果 fifo_uart2 沒有收到任何數(shù)據(jù)說明 DMA 初始化或者 DE 方向控制有問題直接定位到對應代碼。從那以后我每次做雙串口從站調(diào)試都強制把四個統(tǒng)計寄存器加進去跑一晚上輪詢再看計數(shù)幀邊界和緩沖容量的問題基本都是這么暴露的。這套資源里的 DMA 停收順序和 FIFO 容量參數(shù)也是我當時踩過這些坑之后改出來的希望幫到你。本文還有配套的精品資源點擊獲取
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
色噜噜狠狠色综合日日| 五月丁香亭亭A片| 久久性爱视频免费| 久久五月婷婷丁香| 91成人看| 五月丁香婷婷成人网| 五月天婷婷在线AN| 亚洲无码成人性爰网| 日韩久操婷婷| 综合久久十三| 丁香网站| 婷婷香蕉| 97色色网| 九九碰九九爱97超碰| 色五月丁香六月婷婷| 日本女人久久| 伊人五月天97| 天色色综合网| 人人操人| 三日本无码| 996er热| 婷婷久久亚洲| 色色色.COM| 黄色大片又大粗又爽| 婷婷桃色网| 99re6久热只有精品6在线直播| 五月丁香六月婷婷亚洲视频| 五月天婷爱综合| 九九热啪啪| 91热在线观看视频| 国产探花一片区| 五月综合视频| 国产精产国品一二三在观看| 欧类av怡春院| av在线婷婷| 婷婷另类小说| 公的粗大挺进了我的密道| 丁香五婷婷| 欧美人人草| 情五月亚洲婷婷| a在线观看| 任你日视频| 久久久久视剧HD| 五月天大香蕉av| 激情丁香五月| 第九色区AV在线| 婷婷五月天激情四射| 九九综合精品| 天天操综合网| 狠狠干五月| 夜夜操狠狠操| av首页在线| 四川女人毛多水多A片| 中文字幕 码精品视频网站| 久久色亭亭五月天| 婷婷五月激情五月激情| 99国产精品久久久久久久久久久| 久久A极片| 中文字幕丰满孑伦无码专区| 精品综合网在线| 91se视频| 亚洲色图日韩网址| 丁香五月激情六月欧亚激情综合导航 | 色播五月婷婷五月| 4438激情网| 色日本综合| 天天干天天拍| 五月天婷婷色| 色综合播放| 久久丁香综合精品综合| 九九热99视频在线| 亚洲熟妇AV综合网五月丁香伊人 | 2020夜夜操天天爽| 婷婷丁香五月综合| 国产偷人爽久久久久久老妇APP| 免费看欧美成人A片无码| 九九色热| 丁香六月激情毛片| 欧美久久五月婷婷| 狠狠综合网| 色情五月天丁香社区| 色婷丁香| 丁香五月婷婷综合激情啪啪啪啪啪啪啪| 久草视频大香蕉99| 性色人人爽| 色婷婷综合五月| 中文国产五月天| 激情综合网五月激情| 69色婷婷| 天天草女人| 色五月婷婷五月天激情综合| 蜜乳国产网站| 99久在线精品99re8热| 91超碰人人操| 日本黄色在线观看| 五月婷婷综合精品| 最近中文字幕2019视频1| 激情文学 综合 九月| 26UUU欧美激情一区二区| 涩综合在线| 丁香五月婷久久| 色九月婷婷综合| 午夜天堂啪啪| 色99在线视频| 成人va视频| 久久538| 国产九月婷婷| 人妻肉射免费观看| 色婷婷电影网| 91丨九色丨高潮丰满日本| 色色婷婷综合网| 91凹凸在线| 性无码专区无码| 二级黄色毛片| 婷婷五月另类网站| 九月丁香久久网| 91干| 99ri在线观看视频| 激情六月天婷婷| 久久久精久人妻| 亚洲AV综合网| 亚洲六月色婷婷| 五月丁香狠狠| 开心色色五月天综合| 91热在线| 色情丁香五月婷婷精品| 天天干天天操天天拍| 色丁香五月婷婷| www91在线| 大香蕉院线| 五月婷婷之综合激情| 超碰无码老师| 亚洲成人婷婷| 日本操片| 色五月天丁香| 婷婷综合网站| 激情小说婷婷| 5月婷婷视频网站综合| 丁香五月欧美激情| 丁香六月婷婷开心| 99视频| 九九精品亚洲| 婷婷性爱影院| 色5在线| 91丨九色丨白浆秘| 欧美99热| 中文字幕欧美日韩VA免费视频| Www99热| 激情五月婷婷开心网| 婷婷丁香九色| www.五月.com| 欧美综合五月丁香六月婷| 99热这里只有精品3| 影音先锋日本三级资源| 天天操天天爱天天玩| 色网五月婷婷| 丁香五月六月| 亚洲精品成人| 大战熟女丰满人妻AV| 五月婷婷新网站| 天天爽人人综合免费7799| 丁香婷婷啪啪| 日本欧美成人片AAAA| 伊人五月天综合网| 教师性爱毛片| 五月天伊人综合| 91pornav在线| 色综合色色色| 久久婷婷五月丁香| 亚洲无码www| 成年人丁香五月| 亚洲另类毛片| 26uuu最新地址| 成人羞羞啪啪 全 视频| 九九伦子片| 色五月激情婷婷| 久久五月情| 天天做天天爱| 婷婷6月综合网| 日日影院 | 五月天综合影院| 五月丁香综合久久夜夜| 婷婷五月丁香基地| 中文字幕性爱丰满| 大香蕉啪啪| 丁香六月婷| 久久与婷婷| 97搞在线| 狠狠狠狠狠狠狠狠| 丁香五月人妻| 色欲午夜无码久久久久久张津瑜| 日日.c| CAOBIBI| 五月停停999| 五月天婷婷久久| 激情五月天色播| 五月丁香六月婷婷手机无线| 激情久久综合| 久久色午夜在线导航| 九九99免费视频| 丁香六月婷月91婷月| 天天色综网| 思思热这里只有精品| 五月婷在线观看| 《亚洲操B久久免费在线观看,亚洲操B久久在线播放》在线播放 - 高清资源 - 97 | WWW.久久久久久久久久久久久| 五月天激情四射| 丁香婷五月| 99爽视频| 日本一级大片| 婷婷丁香色五月天| 超碰在线91| 五月丁香777| 玖玖婷婷五月天| 九月停停| 国产精品人成A片一区二区| 99热亚洲精品| 开心五月婷婷99| 天天搡日日搡aaaaⅩ| 九色综合网| 91九色在线| 夜夜操天天爽| 99re思思精品在线观看| 日韩抽插操逼| 国产色色在线| 欧美99| 人人插9| 四川BBB搡BBB爽爽视频| 热久久这里只有精品| 五月天婷婷综合网| 国产成人亚洲综合A∨婷婷| 欧美精品久久久久久视频观看| 小色小蛇伊人婷婷色香五月| yiqicaoav| 公的粗大挺进了我的密道| 丁香婷婷色色| 99热这里只有精品1025| 五月天激情久久| 深情五月天| 99在线视频免费| 91一起艹| 婷婷激情肏屄网| 国产婷婷综合在线免费视频| 玖玖婷婷色五月| 丁香五月亚洲综合丝袜| 亚洲一区二区色图-亚洲精品国产精品乱码-成人AV | 丁香 婷婷 亚洲 熟女| 丁香综合婷婷开心激情网| 极品九九九九九九| 991国产精选视频在线播放下载| 丁香五月婷婷综合激情啪啪啪| 五月丁香久久| 国产欧美精品AAAAAA片| 国产91资源在线| 欧美美女视频| 婷婷丁香18| 午夜69成人做爰视频| 色婷婷激情| 欧美婷婷丁香五月社区| 久久精彩视频| 天堂成人A片永久免费网站| 久9热| 久久九九综合| 婷婷不卡基地| 婷婷九月狠狠色| 99热99天堂| 亚洲人人艹| 国产高潮白浆一区二区| 97日在线视频| 五月天狠狠网站| 9久久精品| 久久久久久久丁香五月天婷婷 | 婷婷5月天av| 五月激情开心婷婷| 《蜘蛛女》梁铮1995| 五月婷婷六月综合| 国产99久久久| 99热精品综合| 99精品福利视频| 99视频| 婷婷久久久久| 极品人妻VIDEOSSS人妻| 久久五月婷婷视频| 人妻射精AV| 玖月婷婷爱丁香| 国产寻花在线| 噜噜噜久久| 超碰av在线| 少妇性BBB搡BBB爽爽爽电影| 丁香五月手机视频| 91久久久久久久久久18| 麻豆精品| 五月婷婷网久久| 99精品22| 久久丁香五月| 超碰在线资源| 丁香五月天人体| 中文字幕性爱丰满| 99黄色性生活| 国产免费一区二区三州老师F1…… | 天天综合干| 亚洲第一精品成人999久久精品| 色色无码| 开心色色五月天综合| 97人妻碰碰碰久久| 色宗合久久五月婷婷| 99久热这里只有精品| 亚洲综合色色色| 激情涩播| 精品国产人人爱人人| 婷婷五月六月丁香综合| 天天做天天爱天天高潮| 亚洲啪啪网| 五月激情网五月综合网| 五月丁香啪啪啪啪| 五月色激情综合网| 果冻传媒A片一二三区| 岛国资源站| 久婷婷五月丁香在线观看| 伊人狠狠干| www久久99| 久热99中文字幕| 激情五月综合网最新| 综合网五月天123| 久久九九爽| 婷婷综合伊人| 天天操天天谢| 婷婷五月天成人网| 色婷婷基地在线| 婷婷丁香18| 狠狠干综合| 9l视频自拍九色9l视频在线观看| 久久久精品色色色| 涩丁香| 五月丁香A片| 狠狠干五月天| 亚州精品成人片| 色播五月丁香婷婷| 免费看欧美成人A片无码| 亚洲中文av| 99久视频| 伊人五月天97| 99热免费| 波多野结衣AV无码Porn| 免费观看大片视频 丁香婷婷 六月欧美| 久久久99精品免费观看| 丁香五月日本| 国产毛片精品一区二区色欲黄A片| 99久re热视频精品98| 中文AV网| 超碰国产av| 婷婷五月天欧美| 牛牛澡牛牛爽| 天天综合影院| 天天综合91入口| 开心婷婷五月中文字幕组| 日韩无码AV电影网站| 91操色| 色婷婷亚洲婷婷| 天天爽爽日日做做| 婷婷五月天影院| 色五月天.con| 国产毛片欧美毛片久久久| 久久这里只有精品5| 9久热| 级情九色| 97精品人人A片免费看| 99高级会所久久| 99综合网| 五月天俺去也| 久操干| 99色中文| 色六月丁香婷婷狠狠干| 婷婷中文综合网| 黄色激情五月天| 久久五月天网| www.色五月| 国产人妻操逼| 综合aV在线| 丁香婷婷综合激情五月色| 亚州欧美黄色电影| 综合网啪啪| 九九热超碰| 丁香五月天堂| 婷婷五月天激情基地| 亚洲免费在线观看岛国| 久久九九免费视频| 激情五月视频| www.91在线观看| 午夜丁香婷婷| 久热只有这里精品| 六月婷婷激情图片| 久草婷婷网 | 在线另类视频| 中文字幕1区2区。| 婷婷五月天激情电影| 狠狠色综合网| 久久男人网婷婷| 久久WW| 二人电影免费版在线观看| AA片在线观看视频在线播放 | 天天操无码| 丁香五月六月久久综合| 9 9热这里有精品| 超碰97人人操| 日本激情五月天‘| 久久黄A片| 逼特逼在线免费播放| 激情五月天在线免费美女视频| 色色色综合色| 麻豆忘忧草午夜| 成人在线网址| 婷婷五月情| 婷婷综合另类小说| 五月天婷综合| 91蝌蚪窝视频在线| 色久天| 五月婷婷丁香狠狠撸久久| 另类图片激情五月| 色天使久久综合| 久久曰曰| 五月婷婷丁香五月| 五月婷婷欧美激情| 综合五月草| 婷婷色情五月| 色欲AVV| 超碰成人电影| 婷婷八月丁香激情综合| 99色一| 狠狠色婷婷| 9久热视频| 噜噜噜久久| EEUSS鲁片一区二区三区| 婷婷免费成人视频| 婷婷欧美激情综合| 婷婷色导航| 免费成人中文字幕| 九一娱乐在线观看视频| 无码少妇高潮喷水A片免费| 97久久人人| 五月天天天色| 亚洲色A| 开心婷婷五月花| 91ncom.色| 人人操91色| 五月日韩中文字幕| 99精品偷自拍| 少妇水多A片太爽了| 伊人久久艹| 99在线观看精品视频| 激情美女五月天激情在线| 综合五月天亚洲婷婷| 99热综合在线| 久久精品五月天| 亚洲色图在线视频| 嫩草视频观看| 六月丁香婷婷色狠狠久久| 另类图片五月天激情| 激情五月婷婷综合秋霞| 人操综合| 96色婷婷| 国产色视频网站2| 色婷婷AV在线观看| 激情久久综合网| 色色综合五月| 五月丁香少妇| 色V狠狠的干| 丁香六月久久| 五月久久五月激情| 婷婷丁香五另类网站| 五月丁香综合久久| 婷婷五月激情在线| 热99在线| 午夜成人AV在线| www.婷婷五月天| 欧美六月| 欧美成人AAA片一区国产精品 | 91精品久久久久久久| 996er热| 色丁香久久| 激情综合亚洲| 丁香五月骚喷水视频| 秋霞电影理论| 亚洲另类日本| 亚洲色频| 亚洲岛国电影| 综合久久影院| 婷婷五月天深爱| 色色综合视频| 一区二区乱码视频| 九九热视频在线观看| 色欧美色色色| 久久超级碰碰| 婷婷六月丁香色| 激情五月婷婷老师| 亚洲中文字幕av| 狠狠狠狠狠狠| www.99久久久久99| 六月丁香视频网站| 五月婷婷基地| 丁香五月天电影| 激情文学综合婷婷五月天丁香花| 丁香六月激情综合网| 丁香激情网| 精品无码人妻一区| 丁香 亚洲 久久| 女人天堂AV| 丁香啪啪中文字幕| 久久无码激情视频| 橾逼网| 婷婷五月激情图片| 9久热视频| 日韩综合网络男女香蕉a片| 六月丁香婷婷色综合| 五月亚洲| 丁香六月婷婷| 六月色播| 欧美国产一区二区三区| 五月天激情四射| 一区操| 热的五码久久精品| 五月天成人综合| 大香蕉九九| 日韩操女| 99热这里只有精品最新| 五月综合视频| 色婷婷五月综合在线| 国产综合激情五月久久| 色婷婷综合网站| 性爱激情久久| 欧美激情五月天在线观看| 伊人玖玖网| 五月天丁香婷婷久久九| 婷婷五月花免费视频在线| 性爱视频99| 亚洲无AV在线中文字幕| 337p大胆噜噜噜噜噜91Av| 99爱无码| 亚洲字幕AV一区二区三区四区| 91免费看片| 操射国产日本| 99久久九九视频| 色色色999| 天天干电影| Av狠狠色丁香婷| 色色综合无码| 99视频在线精品免费观看2| 五月伊人婷婷999| 99在线视频在线观看| 日本五月婷婷| 开心五月六月婷婷| 色五月天综合网| 婷婷内射视频在线| 少妇人妻人伦A片| 色色六月| 婷婷亚洲欧美丁香五月| 热久91| 天天 青草 丝袜制服 在线| 精品久久久人妻| 久久98热re| 激情都市丁香婷婷| 婷婷玖玖丁香| 五月狠狠| 黄网网站在线播放| 大香蕉精品视频| 丁香久久五月婷综合| 色色色热热热| 五月丁香久久呀| 五月天婷婷在线视频| 五月天婷婷色色首页| 噜噜久| 操草草草| 亚洲免费av在线| 黄色激情五月天| 丁香五月天影院| 久久人妻视步| 我去色色网五雨天| 婷婷五月天黄色| www.五月婷婷| 色情五月综合婷婷| 色综合五月在线| 久久久亚洲精品一区二区三区浴池| 99在线免费视| 黄色av网站在线免费播放| 俺也去在线视频| 色色影院黄大片| 大香线蕉伊人| 婷婷色婷婷亚洲成人| 97婷婷丁香五月天激情图片| 久久激丁香| 天天爽综合网| 噜噜操操| 99热这里只有精品8| 九九草热在线观看| 欧美日本99| 丁香五月手机在线| 久久五月天合网| 97一区二区| 色五开心五月五月深深爱| 任你干嘛免费视频播放| 婷婷中文字幕| 丁香五月在线观看综合| 婷婷五月a| 激情丁香社区| 丁香婷五月| 婷婷五月,偷窥偷拍网| 亚洲精品视频在线| 色欲资源网| 久久婷婷五月天激情| 激情五月六月婷婷| 婷婷五月天六月| 色呦呦美女| 亚洲精品无码一区二区| 国产在这里只有精品| 另类专区在线观看| 超碰操日| 九九热最新| 日夜夜久久| 婷婷久久网| 综合色七七| 色一情一乱一乱一区91| 五月婷AV| 久热视频A.| bukadeavzaixian| 俺去也五月天| 婷婷丁香五月天激情| 99热99网| 色欲影香| 天天色凹凸| 五月激情综合网| 五月六月伦理| 狠狠狠激情网| 97香蕉碰碰人妻国产欧美| 伊人婷婷福利网| 99热精品在线观看| 99热官网| 亚洲va在线| 热九九在线| 亚洲无码11| 丁香五月激情图片婷婷| 五月综合视频| 人妻AV在线观看| 激情五月天伊人av| 五月激情综合五月| 俺也去在线久久精品23欧美综合视频网站,丰满人妻一区二区三区在线视频53,丰满 | 国产日批视频免费播放| www激情网站| 午夜微拍福利| 国产av一区二区三区| 五月天色丁香| 丁香九月久久| 久9精品视频| 五月天婷婷爱| 婷婷开心久久| 丁香五月在线观看完整版| 99色看这里只有精品| 色色丁香五月天| 天天干天天曰天天射| 亲子乱AV-区二区三区| 爱久久小说下载网| 国产肥白大熟妇BBBB视频| 欧美这里只有精品| 五月婷婷中文| 五月丁香777| 4399成人黄A片| WWW.婷婷五月天.COM| 五月综合在线| 91九色中文字幕女在线观看| 亚洲成人av在线播放| 色五月天婷婷| 超碰国产AV| 久婷五月| 精品久久9| 97碰碰视频在线观看免费| 天天爱天天秀天天做| 丁香五月婷婷视频| 色九月婷婷丁香| 久操激情| 狠狠干婷婷| 天天插天天插| 亚洲精品无AMM毛片| 国产69久久久欧美黑人A片| 日日操天天操| 色婷青青| 婷婷激情四射五月天| 伊人三级激情| 欧美日韩成人免费在线| 色色操| 久久狠狠高潮亚洲精品 天天摸夜夜摸夜夜狠狠摸 | 婷婷丁香五月天小说| 丁香六月高清视频| 思思精品热在线| 六月婷婷在线| 欧洲综合视频| 亚洲综合五月天婷婷丁香| 国产乱子轮XXX农村| 亚洲岛国电影| 久婷久婷| 色欲婷婷夜夜| 视色综合| 色情五月天丁香社区| 99爱视频免费| 天堂呦 呦百度搜索-百度搜索| 激情丁香五月| 超碰精品在线| 亚洲中文乱字字幕线在永久| 五月天婷婷成人网| 久久久中文| 欧美97超碰| 五月婷婷丁香大陆免费| 久久亚洲色导航| 五月丁香六月婷婷综合| 五月激情啪啪啪| 成人午夜天| 午夜成人在线免费视频| 六月婷婷之青青草| 五月天婷婷激情在线色图| 99视频自拍| 碰97 久| 成人电影在线免费试看| 五月天婷婷丁香蜜桃91| 天天操夜夜操| 99精品偷自拍| 99色色网| 九月色婷婷综合亚洲| 高清视频一区| 丁香久久久| 日本三级大片| 99婷婷色| 五月婷色丁香| 性爱综合网| 久久免费干| 激情五月综合色| 五月婷婷真爱激情网| 人人爱人人草| 99玖玖在线视频| 五月丁香伊人网| 亚洲av网站| 婷婷丁香婷婷97| 丁香五月网络网络| 999激情视频| 97碰碰免费.视频| 久久精品爱爱| 五月丁香婷中文| 色情成人五月天| 玖玖资源部在线播放| 97色色综合| #NAME?| 深爱五月中文字幕| 99色视频| 婷婷亚洲天堂| 人妻久热| 超碰人人99| 俺也高清无码高清视频| 男女啪啪做爰高潮无遮挡| 亚洲久热| 亚洲AV免费在线| 极品另类| 亚洲六月婷婷| 超级碰碰视频无码| 欧美激情凹凸丁香网| 中文幕无线码中文字蜜桃| 狠狠操综合| 色色色色色色色色色色色色色97| 人人97操| 99国产视频网| 综合久久综合五月天婷婷| 五月天激情日色在线| 女人高潮内射99精品| 丁香六月婷婷综情欧美| 久久激情网| 操久久网| 五月婷婷啪| 91无码视频| 五月婷婷亚洲| 丁香六月啪啪啪| 综合久久久| 久久新| 97香蕉久久超级碰碰高清版| WWW.久久久久久久| 久热中文字幕| 婷婷中文字幕| 91色色色| 久久五月天黄色五月天色网址| 婷婷五月成人| 婷婷六月久久| 雪千夏麻豆| 激情小说视频图片| 日本三级毛片| 97在线视频人妻九色| 一起草Av| 99综合网| 成人婷婷五月| 日本丰满久久| 狠狠穞A片一區二區三區| 人橾人| 成人丁香五月| 91操色| 婷婷99综合| 天天爽天天爽视频| 超碰97久久| 9l视频自拍九色9l视频自拍九色9l社区| 亚洲人妻Av| 婷婷深爱五月天| 精品福利911| 夜色爱爱亚洲| 亚洲在线综合| 这里只有在线精品| 亚洲一二三网| 色婷婷久久综合| 色情五月丁香婷婷网| 综合久久激情久久| 天天射影院| 激情小说五月天社区丁香 | 99热99成人| 日本WwW色偷偷丁香花久久久京东热| 99色最新在线视频网站| 久久婷婷五月综合成人d啪| 亚洲视频99| 久久99热精品a片在线观看| 午夜福利8055| 人妻内射视频| 狠狠色综合五月| 丁香婷婷五月六月久久| 亚洲妇女熟BBW| 99精品性爱| 天天噜天天插| 久热9热| 狠狠操狠狠插| 99精品福利视频| 日本片日本片祼观看网站在线看中文版网页在线看 | 五月桃花网综合| 99在线热| 亚洲色A| 97人人干| 99色视| 99色婷婷| 五月丁香激情综合啪啪| 伊人六月无码视频| 欧美啪啪9| 婷婷色影音天| 婷婷香五月天| 五月丁香六月婷婷激情视频在线观看免费 | 丁香婷婷久久五月天| 综合激情视频| 丁香五月婷婷基地| 亚州视频九九99| 久久东京热婷婷五月| 一本色道久久综合狠狠躁一二三| 97碰在线| 五月丁香六月在线| 色情五月天se| 久久久91| 玖玖爱导航| 国产毛片精品一区二区色欲黄A片| 狼友超碰| 夜夜夜夜夜操| 99热精这里只有精品| 99久视频| 香蕉久久国产av一区二区| 夂夂夂夂夂夂夂夂夂夂夂夂夂夂夂夂夂夂夂亚洲亚洲亚洲亚洲亚洲亚洲亚洲亚洲色 | 无人区码一码二码三码医生系列| 色婷操逼| 另类激情综合| 99久久免费精品| 五月天婷婷青青| 日日骑夜夜撸| 婷婷无码视频| 色色婷婷丁香五月天| 91免费啪视频| 国产精品激情AV久久久青桔| 丁香婷婷六月| 亚洲综合婷婷| 98色花堂98t.R| 五月婷亚洲精品| 激情网婷婷婷| 日韩欧美骚货| 日韩色情亚洲五月天婷婷| 天堂婷婷五月色| 欧美狠狠草| 玖玖在线视频| 丁香色五月直播| 激情五月天婷婷| 91chinese在线| 伦乱天堂| 91久久久久久久久18| 99热在线精品播放| 天天日夜夜欢| 大香蕉天堂| 久99久热| 婷婷久久亚洲| 99黄色性生活| 操91| 天天摸天天舔在线视频| 99思思在线视频| 永久思思热在线| 欧美狠狠一在草| 色七色九九| 九九免费精品在线视频| 亚洲激情 久久| 色色综合日韩| 先锋资源 996| 婷婷五点亚洲| 五月婷婷,六月丁香| 五月丁香婷婷综合网| 女人天堂AV| 97视频久久| 久久精品性爱| 欧美电影在线播放| 九九精品9| 91精品国产综合久久蜜芽解析速度| 婷婷自拍| 五月婷婷AV| 婷婷五月激情六月丁香 | 色五月色五天色情网址| 五月丁香九九| 国产人妻操逼| 天天日夜夜夜操操操操| 五月丁香在线婷婷美女| www.狠狠| AV性爱在线| 亚洲情综合五月天| bukadeavzaixian| 丁香五月区| 九九99视频精品| 99爱精品视频| 九九热re99re6在线精品| 亚洲无码色色| 99久| 国产1区2区3区| 怕怕av| 99久久综合| 久操热| 久爱综合| 操逼视频一区| 日日操,日日爽| 天天摸天天做天天爱天天爽| 九九AV| 久久九网| 91成人品| 五月丁香欧美在线| aa久久| 大香蕉220| 影音先锋91| 激情综合色五月六月婷婷| www.99热视频| 日韩无码成人电影| 久碰久| 色婷婷狠狠干| 综合在线色婷婷| 天天干天天干天天| 99久免费视频| 成人色情五月天婷婷丁香| 天天色视频| 伊人综合网站| 国产激情av| 丁香五月婷婷欧美成人色图| 99久久99九九九99九他书对| 丁香综合日产精品久久| 99久久99九九99九九九| 99国产这里只有精品| 五月婷婷六月色| 99热全是精品| 五月丁香啪啪啪啪| 91狠狠色| 免费成片在线观看| 精品综合久久久久久五月天| 日韩AV片| 超级碰碰碰久久网站| anquye伊人| 99九九综合久久九九| 九日日夜夜69| 色婷五月天亚洲| 久久伊人五月天| 99久久亚洲国产| 色五月婷婷丁香婷婷| 久热这里只有精品99re| 2016日日夜夜操| 色99欧洲色19| 99久久九九视频| 九九热在线亚洲免费视频| 玖玖婷婷色五月| 日韩精品一曲二曲三曲四曲五曲| tingting五月天亚洲| 五月天久久久| 久综合| 婷婷 丁香 精品| 婷婷中文综合网| 99re热久久| 成人做爰A片免费看视频| 婷婷色五月激情| 涩综合网| 99干日本| 欧美婷婷综合网| 婷婷亚洲色| 免费超碰在线观看| 婷婷激情综合色五月久久,色婷婷丁香花,丁香婷婷五月情天,久久婷婷五月综合色 | 精品人妻伦一二三区久| 五月丁香久久综合| 99自拍视频网站| 五月天色色婷婷| 天天插天天日| 色婷婷啪啪| 99视频在线精品免费观看2| 五月美女婷婷风骚| 五月天五月婷五月激情网| 校花娇喘呻吟校长陈若雪视频| 全部老头和老太XXXXX| 久99| 日本丁香五月| 最新日本A片| 五月婷婷五月| 婷婷丁香五月激情综合站_久久五月丁香激情综合_开心五月综合激情综合五月_婷 | 影音先锋美国A| 《》【无码】想被搞到爽AV应募而来的超M素人 西纯子 10musume-011723-01 | 五月婷婷开心色伊人| 91Chinese在线| 久热这里只有精品在线观看| 丁香六月婷婷久久综合| xx色综合| 日韩欧美不卡| 五月草影视| 噜噜五月天综合| 久狠狠| 99久在线精品| 天天色视频| WWW五月天| 久久精彩视频18| 激情婷婷色五月| 天天干,天天操,天天射| 国产激情AV| 开心婷婷五| 夜夜嗨一区二区三区直播内容 | 99热精品在线| 久久这里99| 9在线9在线婷婷在线国产| 天天做天天爱天天玩| 1024手机在线观看看片_日韩精品| 国产激情视频在线观看| 激情深爱综合| 国产精品成av人在线视午夜片| 五月丁香色| 色伊人婷婷| 丰满少妇猛烈A片免费看观看| 婷婷六月天亚州| 91婷婷五月丁香碰| 久机视频这只有精品| 婷婷深爱色五月| 久久五月天激情婷婷| 色激情综合| 色五月aV| av成人在线播放| 九九热免费视频| 亚洲国产色色| 五月婷婷狠狠干| 日日影院 | 五月天天天天天天天天天天天天天天天婷婷婷 | 九九激情网| 久久伦乱| 色婷婷五月天| 综合色播| 婷婷激情五月天综合| 人妻免费网站| 一级黄色影片| 丁香五月色五月婷婷宗合| 99久久99视频| 免费看欧美成人A片无码| 四月婷婷丁香五月| 激情丁香婷婷五月天| 精品一区二区三区三区| 五月天丁香| AV操操操| 天天色伊人| 成人丁香色| 婷婷五月激情基地| 亚洲人妻av| 天天爽综合网| 五月丁香久久综合| 男人視頻站| 亚洲成av人影院| 天天肏天天肏天天肏| 极品 少妇 内射| 亚洲视频五区| 极品五月天| 97人人超| 9久久婷婷国产综合精品性色| 五月婷深深爱激情网| 久久久久9999| 天天透天天干| 伊人久久大香线蕉精品| 五月激情六月综合| pacopacomama 070722_670 素人奥様初撮りドキュメント 103 大久保純子 | 久草丁香婷婷五月天婷| 少妇高潮呻吟A片免费看软件| 国产91视频| 天天日天天草| 婷婷娱乐丁香综合网| 婷婷五月成人色综合| 中文字幕精品在线观看| 好大好粗嗯啊-一级黄色大片免费观看-成人AV| 亚洲激情五月天| 婷婷久月| 婷婷五月天综合色| 欧美久久五月婷婷| 丁香婷婷激情综合五月激情| www.五月丁香| 9久操| 日逼影音先锋男人资源站| 99精品成人无码A片观看金桔| 天天肏夜夜肏| 五夜丁香| 99色热| 色色亚洲五月天| 日韩成人电泉AV| 九九一区| 国产3p露脸普通话对白| 五月激情综合网| 亚洲中文字幕网| 婷婷综合日本| 婷婷综合在线网| 黄色视频网站在线播放| 婷婷五月av| 囯产精品久久欠久久久久久九大| 丁香花五月天激情| 9有码中文| 91视频五月丁香| 噜啊噜在线| 99热这里有精品| 五月综合激情视频在线| 无码人妻一区| 九九视频这里有精品| 97韩国久久电影院| 99热色在线精品| 婷婷色av| 婷婷五月激情视频| 日本五月天婷婷丁香| 日本熟女二区| 九九热精品| 婷婷内射视频在线| www.婷婷五月天| 九九黄色网| 五月婷婷在线视频| 99热精品在线播放| 国产FREESEXVIDEOS性中国| 亚洲精品V天堂中文字幕| 精品香蕉99久久久久网站| 综合色五月亭亭| 日本wwww在线| 伊人玖玖婷婷| 超碰超碰在线| 国产xxxxx在线观看| 五婷婷六月合| m色激情网| av狠狠操| 欧美精品啪啪| 九九色热| 婷婷丁香社区| 九月性爱网| 伊人色综合久久久| 亚洲中文字幕av| 一區四區歐美日韓| 思思热国产在线| 99在线热视频| 久久这里只有精品热在99| 国产成人精品123区免费视频| 久久婷婷五月丁香蜜桃网| 91综合色噜噜| 97香蕉碰碰人妻国产欧美| 九九精品片一| 99日韩网站| 五月婷婷综合久久| 能看的AV| 欧美六月婷婷| 日本欧美在线| 新激情五月开心五月婷婷五月丁香五月| 丁香婷婷在线| 激情床戏| 国产美女无遮挡裸体毛片A片 | 国产avapp 网| 天天爽天天| 狠狠狠狠狠狠草| 亚洲第一成人无码A片| 这里只有在线精品| 熟女激情五月天| 五月天婷婷社区| 人人操婷婷| 五月丁香香蕉| 欧洲亚洲激情五月天在线| 五月天丁香成人社| 嫩草AV久久伊人妇女超级A| 婷婷色情五月| 五月天婷五月天综合网在线观| 婷婷五月天成人网站| 久久ww| 婷婷综合国产| 激情婷婷丁香五月天小说| 婷婷色狠狠| 丁香婷婷激情| 9久久久| 婷婷 亚洲图片 丁香| 99狠狠色| 日本三级第一页| WWW,五月天| 狠狠色噜噜狠狠狠狠综合| 五月天激情国产综合婷婷婷 | 久久久久久人妻久久久久久久久久人妻久久久 | 蜜乳9188| 五月丁香六月婷婷激情网| 成人国产欧美大片一区| 午夜激情婷婷| 精品A√| 国产小精品| 99久久综合网| 久久丁香五月| www.91五月| a色色色色色| 色五月激情综合| 黄色av高清| 天天成人综合| 91啪啪| 色九月欧美| 丁香五月综合在线观看| 婷婷五月在线视频| 色婷婷丁香| 五月婷婷视频在线观看| 99超碰欧美| 日本色婷婷五月天成人电影| 九九色精品| 国产激情在线| 噜噜色婷婷| 久久91久久精品久久| 婷婷五月天在线观看av| 97人妻碰碰中文无码久热丝袜| 亚洲精品成人片在线播| 狠狠色丁香久久婷婷综合五月| 国产亚洲精品久久久久久郑州| 综合激情五月天| 五月婷婷啪啪啪| 97操碰在线视频| 夜夜夜夜撸夜夜操| 97婷婷五月| 激情综合另类| 中文字幕网伦射乱中文| 五月激情婷婷开心五月| 五月婷激情| 黄色AV日韩| 五月色网| 92久久| 久热91| 思思热天天看| 91精品91久久久中77777| 婷婷综合色图| 五月婷婷深深爱| 欧美性爱中文字幕| 激情99| 26.uuu丁香五月婷婷| 日本久久人| 九九热re99re6在线精品| 成人在线综合| 99a级片| 在线99热| 久热这里只有精品6官网亚洲| 开心五月激情网| 精品久久人妻热| 国产真人做爰视频免费| 天天综合天天玩夜夜玩天天玩夜夜玩|