99精品久久精品一区二区-亚洲熟妇无码?v在线播放-日本国产精品无码字幕在线观看-久久久亚洲永夜AV-亚洲一级无码一区二区一-免费国产成高清人在线视频-中文字幕乱码免费观看-国产毛片精品妇女久久久

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
返回資訊列表
99久视频| 亚洲综合狠狠艹| 亚洲中文字幕av| 丁香五月性| 色色欧美。| 色色亚洲视频| 丁香五月天av| 五月丁香婷婷无码中文| 丁香六月狠狠干| 婷婷五月丁香啪啪| 五月婷婷官网色| av 一区三区四区| 99视频免费播放| 内射综合网| 麻豆科斗777| 草久私拍| 欧美熟女视频 色婷婷| 亚洲无码yw| 精品一区二区三区四区五区六区介绍 | 色综合久久44| 色很很96| 亚洲成人av在线观看 | 亚洲区在线| 婷婷五月天激情四射| 色婷婷色五月综合| 熟女五月天久久综合| 色婷婷最新域名 | 97在线/亚洲| 成人在线精品| 午夜福利8055| 五月丁香六月情婷婷久久| 九色无码| 婷婷欧美激情| 亚洲妇女熟BBW| 色99色| 99视频这里只有久久精品| 91综合国免费久入| 五月丁香好婷婷A片网| 九一娱乐在线观看视频| 色九亚洲| 五月天成人免费视频| 日韩久久这里只有精品| 五月丁香啪啪啪啪| 色综合色欲综合天天免费| 91ncm视频| 色情成人五月天| 亚洲精品白浆高清久久久久久| 120分钟婬片免费看| 激情五月天影院| 久久婷婷五月激情网站| 黄色一级影片| 九九爱精品网站| 国产精品久久久久久久久久| 嫩BBB搡BBBB榛BBBB| 九九热中文| 激情六月婷婷| 五月丁香婷中文| 久热这里只有精品6| 丁香婷五月天| 日逼免费视频| 五月色婷婷综合| www好屌操| 丁香五月综合福利视频导航| 亚洲性爱日韩无码| 九九婷婷网五月天| 熟女网站久久| 日本色色色| 九九热视频这里只有精品| 亚洲在线操| 婷婷噜噜| 久草视频一,二三四| 开心婷婷五月天激情网| 欧美性猛交99久久久99| 99∨VTV| 亚洲乱码w在线观看| 五月天婷婷深深爱| 五月天成人在线视频网站| 五月丁香六月婷婷无码| 99精品在线观看视频| 99综合一区| 亚洲夜夜操| 久久婷婷成人综合色怡春院| 九月丁香| 日本婷婷色| WWW.五月com| 久久婷婷网址| 免费亚洲婷婷中文字幕| 婷婷丁香成人在线视频| 色婷婷丁香五月天在线观看| 天天日天天爽夜夜爽| 啪啪91| 中文字幕中文有码在线| 大香蕉狼人久久| 超碰AV在线| 欧美噜噜免费观看| 色视频五月天| 1024日韩| 欧美日韩成人免费在线| www夜夜操wwwcon| 日韩在线五月天婷婷| 久久九九热视频| 五月婷婷免费在线视频| 精品国产AV色一区二区深夜久久| AVV黄| 怡红院 久久| 天天摸天天舔天天爽| 开心五月天激情| 九九综合| 一区=区操屄高清大全av| 久草a片| 六月激情久久婷婷| 97在线/亚洲| 久久丁香五月婷婷| 九热视频在线精品15| 五月天激情综合网站| 五月丁香激情五月天| 五月综合六月婷婷| 九九RE视频在线精品| 色色综合网www| 久久婷婷五月综合色奶水99啪| 色色综合成人网| 天天草比天天爽| 日韩视频99| 99草在线免费观看视频| 激情丁香五月激情婷婷| 久久婷婷综合五月天| 欧美婷婷色| 99在线视频精品| sewuyuejiqingwang| 热这里| 欧美久热| 久久精品91视频| 五月婷婷伊人网| 五月天色色婷婷| 色欧美一级| 亚洲超碰在线| 大香蕉伊人99| 五月天婷婷AV| 亚洲va在线∨a天堂va欧美va| 天天干夜晚夜操| 久热精品在看| 99九九视频精彩在线| 久久女人天堂| 欧美月久久| 五月丁香网av| 99热免| 久久五月热| 五月婷婷无码| 加勒比久热| 亚州激情网| 99精品国产在热久久婷婷| 国产精品久久久爽爽爽麻豆色哟哟| 日韩 中文 欧美| 678五月丁香亚洲综合| 丁香五月婷婷亚洲综合精品| 色综合久久44| 色情五月天丁香社区| 五月天色导航| 五月久久五月激情| 精品无吗va视频免费观看| 国产精品a无线| 97人人操人人拍| 九九大香视频| 色综合激情| 色婷婷激情四射视频| 激情综合亚洲色婷婷五月| 91久久久久久| 思思热性操| 超碰免费人人| 久久人妻情侣| 一片AV片免费播放| 91狠狠综合网| 91色婷婷综合久久中文字幕二区| www.婷婷五月天.com| 插逼综合网| 欧美性猛交99久久久99| 东京热伊人| 日本色图综合| 天天色天天色天天色天天色天天色天天色| 99热综合在线| 五月丁香成人视频| 色久99| 亚洲六月色| 大香蕉220| 天天日综合网射| 五月天婷婷在线播放| 激情综合五| 色七七九九| 2017人人操| 免费精品99| 91亚洲免费片| 丁香五月激情啪| 99日本视频| 色五月中文网| 国产9色在线/日韩| 欧美色婷婷| 五月婷婷丁香综合| AA丁香综合激情| 思思视频久久| 久久精品一区二区三区四区| 丁香五月婷婷激情视频播放| 久在线综合69| 99久久精品国产色欲| 色色五月丁香婷婷综合| 婷色五月天| 生活片五区| 色999亚洲人成色| 亚洲精品视频在线播放| 人人操AV| 99热精品在这里| www.com任你艹| 播五月开心婷婷欧美综合| 91热手机在线| 99热在线只有精品| 丁香婷婷久久老熟女综合网| 成片免费观看大全| 九九热av| 国产五月天激情小说| 热思思九九| 一区二区三区四区无码| 超碰99热精品| 五月香婷婷| 亚洲久久婷婷| 欧美日韩123| 婷婷精品免费久久| 五月丁香激情婷婷综合字幕| 欲色人妻| 婷婷丁香五月亚洲| 丁香社区婷婷五月| 久久香蕉福利| 琪琪布丁香社区激情五月天| 激情网五月天| 国产伊人五月天| 日韩国产在线精品| 另类精品视频在线观看| 欧美色色色| 色婷婷啪啪| 五月天色色网站| 欧美丁香六月在线观看视频| 中文字幕人妻AV| 色综合天堂| 无码地址| 91在线视频综合| 色情五月婷婷| 天天插综合| 337p大胆噜噜噜噜噜91Av| 国产亚洲99久久精品| 六月丁香五月亭亭| 91久久精品无码一区二区三区| www.狠狠操| 狠狠五月天婷婷激情网。| 日本97在线| 大香蕉伊人久久| 丁香久久久| 一级性感黄色内射视频| 六月丁香婷婷爱| 91九色精品女同系列| 色婷婷成人在线| 99小视频在线观看| 五月天久久色| 久久免片| 久久久精品AV| 99精吕视频在线观看了| 五月天婷婷久色| 婷婷五月,偷窥偷拍网| 五月天久久久| 五月丁香成人小说| 欧美色色色色色色色| 丁香五月,开心五月,成人婷婷 | 亚洲XX网| 亚洲9久久精品| 97干欧美| 九九婷婷网五月天| 亚洲噜色| 天天操天天操综合| 五月色丁香综合| 亚洲激情五月| 日韩精品呦呦va| 五月激情综合网| 丁香六月婷婷激情| 欧美婷婷五月| 另类小说五月天| 综合久久综合五月天婷婷| 亚洲精品99| 色情丁香五月婷婷精品| 热99在线精品| 婷婷五月天在线视频网站| 99热综合在线观看| 狠狠色丁婷婷日日,伊人激情综合网| 婷婷五月18永久免费网站| 久久一级AV| 婷婷狠狠操| 人人操人人爰人人一天天碰夜夜拍夜夜爽-中国A级毛片天天看天天谢… | 99国产在线精品视频| 99精品久久久久久久婷婷| 吉澤明步Av一區二區| 就99这里只有精品| 婷婷第六色| 影视av久久久噜噜噜噜噜三级| 狠狠色综合无线观看| 丰满少妇猛烈A片免费看观看| 久久久8| 久久机热这里只有精品| 精品久久久久久久人妻| 天天做天天爱天天玩夜夜爽| 呦呦视频无码播放| 99re这里只有精品在线观看| 国语精品探花| 久草热视频在线观看| 色色网站免费观看| 狠狠色噜噜| av人人操| 天天爽天天干| 日本啪啪网| 亚洲婷婷五月| 九九热AV| 超碰在线人妻| 国产乱子轮XXX农村| 久久er99热精品一区二区| 色婷婷综合网| www.国产色| 五月天婷婷综合| 亭亭五月丁香五月天激情| 久久婷婷六月综合| 日韩免费视频| 99热在线播放精品| AAA久久久AAA久久久AAA| 久久综合婷婷五月| 91九九| 丁香婷婷精品视频| 在线中文AV| 国产精品久久久久久久久久| 亚洲丁香五冃97色| 婷婷丁香社区| 日日骑夜夜撸| 色婷婷先锋| 丁香五月中文字幕久色| 亚洲网视屏| 色婷婷免费观看| 男女99免费视频| 五月丁香婷婷爱激情综合网| 色婷綜合网| 五月丁香青草综合啪啪| 婷婷综合一二三| 九九综合九九| 免费无码毛片一区二区A片| 99色综合久久| 五月丁香六月综合基地| 青草性爱视频| 色婷五月天激情| 丁香六月天色婷婷| 九九综合精品| 性色做爰片在线观看WW| ZpRSw| 在线日本www| 成人色图情色成人网 www.5b5b5bcom 五月天| 色99色| 丁香五月天激情婷婷丁香六月| 狠狠狠激情网| 99超级碰碰| 色综合久| 操久久精| 思思热99在线| 婷婷五月电影院| 这里只有精品视频在线| 丁香五月婷婷天堂大香蕉| 五月天激情黄色小说在线观看| 精品无码av丁香五月激情| 精品夜夜澡人妻无码AV| 99玖玖视频| 亭亭色色五月天| 小视频一区| www.五月丁香| 182无码| 久久婷婷综| 另类综合国产| 99热伊人| 婷婷五月电影| 狠狠干综合网| 国产熟妇的荡欲午夜视频| 久热伊人在91| 99re这里只有精品首页| 性爱网五月天| 手机在线视频观看9| 夜夜躁狠狠 | 五月激情影院| 五月激情综合网婷婷| 色色色国产| 色婷婷久久综合丁香五月| 91久热| 91seAV| 激情五月天啪啪视频| 天天日夜夜拍| 成人无码精品1区2区3区免费看| 久热99热| 亚洲激情五月天| 色色色综合网| 六月亚洲婷婷6月中文字幕| 久久这里只有精品8| 色999亚洲人成色| 伊人9在线| 激情丁香五月婷婷啪啪| 曰韩少妇内射免费播放| 婷婷激情伍月网| 久久99精品久久久久久噜噜| www。五月,com| www.minyis.com【JT】实力收量可预付TG@LXSPSW8 | 五月激情婷婷国产精品久久久久久| 天天摸天天舔天天爽| 亚洲AV网站在线观看| 九九精品免费视频99| 人人爱干人人爱草| 夜夜骑夜夜撸| 九九九九九九毛片| 玖玖热视频| 99年操人人爽| 丁香5月啪啪| 日韩无码专区| 丁香 婷婷五月| 五月丁香久久| 99r久久这里只有精品| 婷婷视频网| 91干视频| 五月婷婷综合激情网| 亚洲一区二区 成人网站戴套| 五月久久亚洲| 百度一下国产精品A| 天天射天天射一道本日本社区| 色色国产| 九九热手机在线视频| 中字幕视频在线永久在线观看免费 | 这里只有精品在线免费视频| 精品热九九| 思思w99| 伊人久久婷婷五月综合97色| 性生活久久朋友人妻| 色色婷婷综合| 五月开心色| 69人人操人人爽| 五月婷婷影| 欧美成综合在线观看| 丁香五月天在线| 中文字幕成人日韩| 五月婷婷啪啪综合网| 青青日韩| 亚洲综合网 665566| 成人版视频在线观看| 丁香婷婷色九月| 色色五月天网站| 九九久久五月天| 97久久人人| 日韩AAAAA| 丁香六月婷婷开心| 五月激情丁香啪啪| 99精品偷拍视频| 精品人妻久久久久| 99热最新精品| 久久婷婷伊人| 丁香狠狠色婷婷久久无码视频| 丁香六月婷婷久久亚洲天堂| 日本三级日本三级99| 性日本激情| 第四色在线观看| 丁香五月婷婷亚洲色图| 人操综合| 在线观看中文字幕亚洲| 国产寻花在线| 四色五月视频| 婷婷综合网站| 五月激情天天干| 啪啪黄页网| 色色A| 丁香五月天BBw| 97超级碰碰碰| 婷婷99狠狠| 操射国产日本| 99re最新地址视频| www.一起草av| 北京熟妇搡BBBB搡BBBB| 天天爽天天干| 九月婷婷久久| 啪啪啪丁香五月| 成人国产综合| 国产精品五月天婷婷| 97色片| 婷婷丁香91综合| 五月色网| 国产午夜一区二区三区| 久久久久久久久久久久久久人妻视频 | 日韩狠狠色婷婷| 男人的天堂99| 天堂无码人妻精品AV一区| 夜夜撸日日操| 激情影院内射| 久久大香蕉同僚| 亚洲V国产V欧美V久久久久久| 丁香六月婷婷综合| 久热这里只有精品66| 99精品人人| 成人超碰网| 97狠狠色| 婷婷激情小说| 久久成人精品视频| 9九热视频| 五月天丁香啪啪啪啪| 久久久久久久人妻| www.99热视频| 色噜噜狠噜噜视频| 丁香五月停停av| 俺来也综合网精品一区| 婷婷开心五月| 国产成人va在线| 亚洲另类在线观看| 丝袜熟女一区二区三区| 中文字幕日产A片在线看| 五月色婷婷影院| 九一99| 79成人网| 精品婷婷五月视| 丁香九月婷| 色五月自偷自拍婷婷婷婷| 成人片黄网站色大片免费毛片| 成人日韩欧美| 婷婷色网站| 激情婷婷色五月| 婷婷五月丁香婷婷| 激情五月综合六月丁香婷婷狠狠干| 色五月婷婷操逼| 亚洲人成网站999久久久综合| 4438亚洲欧美| 极品少妇XXXX精品少妇偷拍| 67194国产| 丁香伊人网| 中文字幕 中文字幕明步| 国模淫穴色图| 久久精品视频9| 99这里只有免费的精品| 色情五月丁香婷婷网| 婷婷四色五月| 任你干嘛免费视频播放| 5五月综合网亚洲| 五月婷婷激情在线| 天天婬色综合| 天啪色| 九九中文字幕九| www色哟哟| 婷婷色资源| 青柠影视免费高清电视剧| 丁香五月色情| 无遮挡国产高潮视频免费观看| 日本片日本片祼观看网站在线看中文版网页在线看| 九九亚洲视频| 91chinese在线| 丁香色五月 97干| 天天爽夜夜操| 大学生高潮无套内谢视频| 天天做天天爱天天高潮| 97人凄人人操人人爽| 91视频免费后入强操| 99视频在线观看视频| www.久操| 五月婷久久久| 热中文字幕| 综合久久婷婷五月丁香| 天天操夜夜玩!| 四色女婷婷| 五月丁香激情在线| 开心五月婷婷| 色色色免费视频| 久久久久9999| 亚洲成人av中文| 色九月综合网| 亚洲九九夜夜| 丁香色五月婷婷17C| bbwcuckold精品熟妇| 婷婷色5月天在线。| 久久在线人妻| 噜噜噜久久| 色色亚洲| 婷婷丁香六月| 美女视频图片久久91| 久久久27操| www.久久爱| 天天拍夜夜爽日日| 思思热这里只有精品| 九九九九毛片| 中文字幕无码AV| 色色色五月| 婷婷99狠狠躁天天躁中文| 九九香蕉网| 日在线V视频在线播放| 久久小片| 天天干夜晚夜操| 丁香五月激情图片婷婷| 亚洲综合草草| 欧美成人网婷婷综合在线| www99热| 99久久久| 亚洲综合碰| 91狠狠综合久久久| 久久色这里只有精品| 亚洲在线操| 色爆五月| 无码人妻激情| 激情开心五月天婷婷基地丁香社区| 91九色熟女| 无人区码一码二码三码医生系列| 丁香六月欧美| 丁香五月影院| 在线天堂9| 九九久久综合网站| 五月激情婷婷在线| 996热re视频在线观看视频| 婷婷色在线视频| 婷婷色在线| 天干干夜夜操| 色欲五月婷婷| 婷婷色资源| 综合丁香婷婷五月天| 99在热线免费视频| 国产成人精品一区二区三区视频| 91色噜噜狠狠狠狠色综合| 天天干天天色天天干| 亚洲成人综合在线| 欧美婷婷精品激| 六月五月久久丁香| 五月丁香婷婷色| 久久天堂女人| 伊人婷婷激情| 久久久久婷婷| 九色自拍| 噜噜狠狠色综合久| 在线免费观看激情视频| 五月天全国最大成人网| 成人在线视频网| 一本狠婷婷综合| 国产超碰在线| 激情综合无码| 操逼六区| 日韩在线一级| 色一情一乱一乱一区9| 五月天婷婷深深爱| 久久精品99国产精品日本| 五月丁香色色网| 99精品久久久久| 九九激情视频| 无码区婷婷五月花开| 天天干在线播放| 激情五月天综合图片小说网站| 99综合免费视频| 玖玖激情五月天| 亚洲色五月天| 97成人超碰免| 狠狠操.COM| 国产精品国产成人国产三级| 天天日夜夜高潮| 亚洲精品婷婷| 99热欧美在线观看| 色噜噜婷婷| 啪啪激情综合| 激情四射五月天| 久久99久久99精品免观看粉嫩| 久久九九婷婷| 五月丁香婷婷激情澎湃四射| 亚洲天堂色| 亚洲另类久久| 久在线综合69| 亚洲99在线| 日B日潘金莲BB| 五月天激情久色| 最近中文字幕2019视频1| 琪琪理论片| 天天射影院| 六月丁香婷婷尤物| 丁香五月婷婷久久久| 久久综合五月| 在线中文字幕av| 97色色色| 99久久婷婷五月天| 五月亭久久无码视频| 99热99美国在线观看| 无码激情| 色色色综合网| 婷婷伊人五月| 光棍影院日韩精品| 丁香激情网| 五月婷丁香花| 午夜不卡久久精品无码免费| 亚洲人妻五月丁香婷婷| 日韩美女羞羞网站在线观看| 97人人操人人| 五月丁香日本在线视频观看| 成人草榴视频| 丁香五月激情六月综合| 九九视频在线观看视频在线播放69| 99精品免费欧美小视频| 五月丁香久久呀| 99思思| 天天操夜夜夜拍拍拍| 丁香五月婷婷总啪啪| 丁香五月中文字幕色播| 五月六月播婷婷| 日日影院 | 开心五月婷婷在线视频免费观看| 五月婷中文娱乐综合| 丁香五月区| 99久久a线观| 五月做爱| WWW.99视频| 久久草人妻| 665566 无码| 日良久久| 日日爽天天| 久操大香蕉| 男女啪啪视频久 9| 操碰97| 亚洲夜夜操| 色很很96| 五月婷婷色色网址| 色爱综合网| 99ri精品在线| 丁香婷婷成人在线播放| 色婷婷久久| 综合成人小说婷婷| 99热久只有精品首页| 欧美激情久| 丰满少妇乱A片无码| 日本激情91| 五月丁香婷庭在线| 五月天婷基地| 九九这里是免费的视频5| 六月婷婷毛片| 五月天婷婷色| 婷婷月综合| 久久婷婷五月综合色和| 免費亭亭成人| 在线不卡视频| 九色无码| 壅壅儕家a| 国产日产亚洲系列最新| 亚洲激情四射| 大香线蕉伊人| 丁香五月天啪啪a日本| 激情播丁香| 99ri在线观看视频| 亚洲色图在线视频| tingtingseav| 久久综合婷婷激情| 五月丁香成人网| a网站免费观看| 狠狠干狠狠干| 激情五月色播五月| 丁香五月激情图片| 99视频精品8| 思思视频精品| 色婷婷五月六月丁香综合视频| 五月婷六月| 九月丁香八月婷婷久久综合久97| 五月天婷婷网站| 人人摸人人操人人爱| 婷婷六月色| 婷婷五月激情中文字幕| 婷婷在线视频| 天天色播| 91超级碰碰| 婷婷的99视频网站| 综合激情在线视频| 97操碰视频| 久久99久久99精品免观看粉嫩| 婷婷五月天电影网| 色色色色色色网站| 九九这里都是精品| 五月婷婷六月丁香综合| 激情五月色在线播放| 色区域网站视频| 可以免费看的av网站| 天堂草在线观| 2025年最新亚洲在线欧美| 五月婷婷欲色| 丁香六月激情网C0W| 婷婷5月九九| 久久婷婷五月综合色和| 91wwmm导航| www.婷婷.com| 99只有精品| 大香蕉免费9| 大香蕉久久婷婷| 国产操B视频| 9色视频在线| 黄色大片又大粗又爽| 五月色婷婷综合色| 天天爽日日搞| 这里只有精品69| 色色色9| 超碰网站在线观看| 久久视频婷婷视频| 婷婷五月天福利| 伊人综合网站| 免费色婷婷| 色一情一乱一乱一区9| 手机旧版看人妻1025| 久久HD| 99高级会所久久| 天天拍久久| 欧美成人色婷婷| 殴美激情综合网| 五月天婷婷久久视频| 少妇熟女视频一区二区三区| 久久大大香| 日韩成人电影Av| 超碰超碰在线| 9久久久久久久久久久| 99re热视频这里只有综合亚洲| 《诡秘之主》在线观看| 国产热精品| 国产激情综合五月久久| 丁香婷婷性爱| 欧美成人AAA片一区国产精品| 伊人喵咪a V| 日本WWW九九九| 99这里有精品久久97| 亚洲色色精品| 97极品在线| 99热色精品| 综合激情九月婷婷,激情综合婷婷中文字| aaa9区免费在线观看| 99亚洲精品视频在线观看| 亚洲 在线 性爱| 五月天播播中文字幕| 思思久久精品| 欧在线一区| 大香蕉伊人久久| 丁香五月激情澎湃一区| 综合性爱网| 国产精品国产成人国产三级| 夜夜AVV| 激情深爱五月婷婷| 97婷婷五月天| 亚洲色五月| 99丝袜精品视频网站| 99re在线视频精品,这里只有精品18,| 操操操操操电影网| 久久色天堂| 婷婷五月激情四射手| 青青草色在线视频观看| 九九久久五月天综合伊人| 成人精品人妻| 久综合4| 久99热| 婷婷狠狠干| 99re在线播放| 色婷婷888| 深爱丁香激情| 狠狠色婷婷7777久| 99在线播放| 色五月婷婷丁香国产在线| 97色色色| 五月丁香亭亭电影久久| 成人短视频在线观看| 国产五月天欧美色| 99国产精品久久久久久久久久久| 久久99精品日本| 五月婷婷开心六月激情小说| 九九视频这里只有精品| 丁香五月ⅤA久久久| 久久久er热| 亚洲视频五区| 五月婷婷丁香大香蕉| 月婷婷亚洲| 97干欧美| 婷婷五月综合色中文字幕| 六月婷婷私欲| 欧美99热| 色情五月综合婷婷| 99热只有| 成人五月天。COM| 五月丁香视频在线观看| 色999五月色| 99噜噜噜| 激情综合色婷婷六月天| 91色呦哟| 日本婷婷丁香五月| 久草婷婷| 91尤物九色在线| 狠狠人人婷婷| 婷婷情色五月| 激情综合网 激情五月天| 久9视频| AV大香蕉| 91九色精品熟女内射| 欧美人人女女精品综合五月天| 日韩99精品| 激情五月婷婷老师| 激情综合婷婷| 亚洲日韩乱码一区二区三区四区| 色婷婷影院| 91久久久久久| 殴美激情综合网| 日亚二欧美| 操逼巨乳91| 亚洲色网址| 久久婷婷草| jizzdr| 97sese婷婷| 直接看的AV| 亚洲成人无码片| 久久久久丁香婷婷五月天| 五月天婷婷激情六月久久| 国产精品久久久丁香五月八戒视频| 久久精品国产AV一区二区三区 | 二人电影免费版在线观看| 可以免费观看的av| 五月天激情在线视频| 国产在线aaa片一区二区99| 亚洲精品操一操、噜一噜、摸一摸、爽| 激情五月天 婷婷| 噜噜噜噜婷婷五月天| 丁香五月电影| 日本女天天爽| 国产精品久久久久久久久久免费| 千人斩操逼| 亚洲日韩操B| 99热成人在线观看| 99久久婷婷五月| 超级碰碰碰久久网站| 久草五月天| 77777亚洲午夜久久| 九九青草热| 91ncom.色| 婷婷五月天激情网| 五五月五月| 国产精品男人AV不卡| 开心激情播播五月天| 日本专区久久| 久久丁香五月天| Av性爱网站| 狠狠色噜噜狠| 五月丁香婷婷综合视频| aaa久久| www.婷婷| 第一区久久网站| 91综合视频在线| 色婷天天| VA国产在线综合网站| 韩国中文字幕91| 五月天六月色| 国产激情久久| 99riav 亚洲| 久久久久久人妻久久久久久久久久人妻久久久| 射久久丁香五月| 婷婷六月啪啪| 99久久99热这里只有精品| 欧美六月婷婷| 婷婷五月天丁香花| 日韩按摩二区| www热久久yy9| 99熟女| 五月丁香操亭亭网| 亚欧州精品视频| 五月开心网| 人人干人人操人人摸| 超碰免费成人| 日韩av变天就操逼不卡区| 国产在这里只有精品| 婷婷五月播| 五月激情综合婷婷| www.五月婷婷久久.com| 久久狠狠色| 亚洲一区二区无遮挡A片| 天天色天天日| 婷婷 月 丁香| 超碰在线99| 精品九九久久| 高清无码视频网址| 日日噜狠狠色| 欧美噜噜免费观看 | 婷婷激情小说网| 九九伦子片| 激情五月天综合| 天天日天天干天天天| 热99国产精品| 亚洲AV日韩AV永久无码网站| 中文字幕永久在线| 丁香五月激情性色郤| 亚洲电影在线观看| 精品亚洲国产成AV人片传媒| 色婷婷成人做爰A片免费看网站| 五月婷婷婷| 日韩狠狠色婷婷| 五月丁香六月激情综合| 这里只有精品96| 狠狠做深爱婷婷久久综合一区| 26uuu欧美宗合| 久久视网36| 无码A片一区二区免费| 九九偷拍网| 九九碰九九爱97超| 久久九九综合| 色色色视频免费无码 | 人人操日| 99在线免费视| 亚洲噜色| 色五月综合在线| 久久92| 色必久悠悠影院| 99热这里只有精品23| 激情内射p| 99热精品观看| 99视频久久| 嫩草极品| 色色五月综合| www久久99| 天天草狠狠擦| 99热费观看| 丁香九九九九| 九九在线精品| 狠狠狠狠狠狠草| 综合99视频| 丁香亭亭久久| 精品草原久久视频| 丝袜激情网| 另类天堂| 日韩AV免费| 超碰97人人操| 99热在线中文字幕| 夜夜骑天天操| 99热这里只有精品99| 春色激情| 中文色婷婷| 色 丁香婷婷| 色婷婷色99国产综合精品| 亚洲激情五月| 久草婷妨| 99自拍视频在线| 狠狠狠狠狠草| 亚洲在线资源| 日韩无码AV电影网站| 亚洲狠狠婷婷| 色噜噜,噜噜色| 中文av网| 公的粗大挺进了我的密道| 1024在线观看免费视频| 色九月婷婷| 丁香五月婷婷色播艳门照| 九九九九综合| 五月婷婷六月激情| 99综合一区| 欧洲综合色| 久婷婷| 超碰熟女农村在线69| 91色五月| 婷婷情色激情| 五月丁香香蕉| 色射7856五月天激情四射| 亚洲综合网区| 天天天天操| 中文字幕日产A片在线看| 婷婷久久伊人| 色久五月| 婷婷性爱影院| 亚州欧美黄色电影| 啪啪色激情五月天| 99A片| 欧美性猛交AAAA片黑人 | 天天肏高清在线| 天天cha成人综合网| 久久婷五月婷| 免费V片在线| 青青热久久综合| 99热1| 婷婷色狠狠| 丁香五月婷婷少妇| 久久综合首页| 久久丁香网| 79亚洲精品少妇| 欧美日本黄色| 9久9久9久女女女九九九一九| 第四色色六月色综合| 99精彩视频| 激情综合色婷婷啪啪五月天| 色色综合色视频| 国产精品色婷婷久久久精品| 牛牛澡牛牛爽| 99久热这里有精品| 中文字幕在线免费| 综合超碰熟| 狠狠狠狠狠草| 六月丁丁香| 成片免费播放| 激情久久丁香| 久久综合9| 天天爱天天做天天爽| 天天综合精品| 97碰在线| 五月婷婷丁香啪啪| 婷婷五月丁香综合桃花色网| 天天综合亚洲综合| 五月婷婷激情综合| 婷婷在线精品| 婷婷99| 大香蕉久热| 九九中文字幕九| 久久 视频这里只有精总| 国产乱人偷精品人妻A片| 免费九九热| 97视频久久| 另类视屏| 女高怪谈在线观看| 97luluse| 五月天婷爱综合| 极品人妻VIDEOSSS人妻| 欧日美女Va| 伊人激情| 激情五月天色网站| 9久久婷婷国产综合精品性色| 婷婷久久18| 色综合激情| 国内自拍1区| 激情五月婷婷中文字幕| 99热在线观看| 桃色伊人在线| 全部老头和老太XXXXX| 伊人大香五月天| 婷婷丁香六月| 人人爽天天莫| 色婷婷小说网| 婷婷色色网| 人妻操逼视频| 噜噜噜噜噜在线| 五月花激情| 毛片网站谁有| 91一起操| 这里只有精9| 中文字幕无码人妻少妇免费视频 | 9热网站| 99热这里精| 色婷婷激情Av久久久| 色婷婷色人人射| 91久久久久| 色五月婷婷五月天激情综合| 在线成人av播放| 五月天激情视频| 久久婷婷丁香| 日本色色图| ay2区| 99免费视频| 另类激情五月| 蒲京久久无码视频| 色狠狠色综合| 99久久五月天| 人人干99| 九九热a| 激情综合五| 丁香五月婷婷亚洲另类| 日韩欧美成人网| 亚洲色网络| 色婷婷777狠狠| 五月婷婷之综合激情| 99热无码精品| 97色五月婷婷在线| 婷婷深爱五月丁香| 丁香五婷婷| 婷婷开心激情| 色五月在线| 丁香五月婷婷老师网站| 亚洲情综合五月天| 欧美综合激情| 97色色在线视频| 99久在线精品99re5热视频| 婷婷丁香亚洲色综合91| www.色五月| 日本少妇裸体做爰高潮片| 久久99美女精彩视频| 日韩av网站在线观看| 色色婷婷五月天| 丁香五月婷婷动漫视频| www...com黄在线观看| www.色婷婷.com| 99热国产| 91久久精品国产91性色TV| 国产精品色婷婷AV综合色色| 超碰在线9| www.色五月| 日韩在线aaa| 九九99九九99九九99视频网| 成人日韩欧美| 99er精品视频| 亚洲天堂热| 亚洲亚洲人成综合网络| 五月丁香777| 久久久久这里都是精品| 丁香五月影| 婷婷黄色五月| 色色色免费视频| 热久久精品视频网站| 百度4399有码精品V在线观看| 欧美婷婷五月丁香| www.minyis.com【JT】国内CDN落地页保证转化QQ2101460746 | 亚洲字幕AV一区二区三区四区 | 这里有精品| 狠狠色婷婷7| 五月天大香蕉视频| 九九99久久| 国产精品视频久久99| www.五月天色色.com| A片女女女女女女BBBB| 九九热精品| 精品婷婷五月天| 精品综合爱| 搡BBBB搡BBB搡18| 五月天婷婷综合免费| 人人爽人人射-美女久久久久久久久久-成人AV | 精品夜夜澡人妻无码AV| 精品人妻一区| 婷婷激情五月天激情在线| www.色色com| av大香蕉| 五月天激情小说| 丁香五月婷婷六月婷| 天堂网啪啪| 国产精产国品一二三在观看| 97婷婷丁香| 五月综合激情视频| 久久99网站| 玖玖玖婷婷婷| 99热免费| 伊人久久大香蕉网| 五月丁香狠狠地噜噜噜噜| 亚洲中文字幕av| 97亚洲精品| 色五月婷婷久久| 91超级碰在线| 五月天婷婷激情春色小说| www.激情| 一级性爱大片| 久久小说| 9 1超碰九色| 日本五月天一页| 色五月开心五月激情五月| 色婷婷88| 久久婷五月影院| 精品一二三区久久AAA片| 另类激情五月| 欧美日韩AAAA| 综合久久丁香婷婷,五月婷婷六月丁香,开心激情综合网,六月丁香在线观看,婷婷丁 | 亚洲国产色婷婷| 国自产拍偷拍精品啪啪一区二区| 色五月天激情| 五月丁香在线观看| 深爱激情五月天婷婷网| 噜噜噜噜婷婷五月天| 综合色影院| 丁香影院五月综合| 99热这里有精品| 91丨九色丨东北熟女| 色五月丁香婷婷久草| 五月天激情子轮| 亚州欧美国产久精国产99综合视频| 伊人激情综合网| 99人人操| 亚洲无码猫咪| 日本强伦片中文字幕免费看| 99这里有精品| 色婷婷操逼| 超碰在线中文字幕| 开心五月网|