免费国产精品自在自线-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
返回資訊列表
九九热精品6| 久草热视频在线观看| 婷婷五月天天| 精品人妻一区二区三区四区不卡在| 日韩综合久| 亚洲视频码| 色偷偷色婷婷| 深爱激情中文五月天av| 欧美精品狠狠色丁香婷婷| 天天狠狠夜夜狠狠2023| 9色在线| 五月婷婷影| 五月丁香色色综合| 精品人妻在线免费观看| 激情综合女人网五月播播| 五月丁香亭亭| 久久性爱视频| 欧美日朝成人| 丁香五月婷婷深爱综合激情| 色狠狠色综合久久久绯色aⅴ影视| 婷婷综合久久| 亚洲国产精品二二三三区| 5月丁香婷婷| 丰满少妇猛烈A片免费看观看| 26uuuu精品一区二区| 超碰人妻公开在线| 91久久九久久九久久九久久九久久| 乱码操操| 色五月婷婷在线| 婷婷五月香蕉| 国产 码在线成人网站| 激情六月婷婷| 成人午夜视频精品一区| 69er小视频| 久久aaaaa| 国产精品美女久久久久AV超清| 岛国AV网站| 天天日天天干天天天| 丁香五月婷婷激情蜜桃| 直接看的AV| 色999五月色| 97久久综合网| 五月激情影院| 开心五月深爱五月| 香蕉久久国产AV一区二区| 97影院一级片| 亚洲综合网 665566| 激情综合网五月| 天天插天天| 天天干狠狠操| 日日操日日射| 国产精品热搜丁香五月婷婷| 天天色宗合| 丁香五月欧美色综合| 无码网站视频| 淫视馆aV二区一区| 日本情色一区二区| 亚洲精品一区中文字幕乱码| 丁香五月最新地址| 日本成人噜噜噜噜噜| 美女五月天婷婷| 九月色婷婷| 99爱爱| 久综合色| 久久成人性爱| 欧美英丁香开心快乐六月天网| 日本婷婷网| 狠狠草天天草| 婷婷五月骚厕所| 激情久久综合网| 婷婷四色成人综合色视| av色色国产| 麻豆AV一区二区三区| 狠狠色噜噜| 五月激情视频| 国产精品视频免费看| 日韩五月丁香| 婷婷娌伦网| 中文久久婷婷| 天天日天天插| 日本网站久久| 久久停停超碰| 欧美猛片| 久久伦乱| 少妇人妻人伦A片| 成人中文网| 国产毛片操B| 九九久久腿| 69精品人人人人人人| 九热免费视频| 97视频久久| 99热在线中文字幕| 丁香久色| 梁铮版《蜘蛛女侠》在线| 五月天婷婷影院| 深爱激情六月天| 国产亚洲精品久久久久久郑州 | 婷婷六月五月天综合| 色婷婷五月影视| 激情五月天婷婷色色色色色色色色色色色| 亚洲成人在线观看av| 五月丁香婷婷色| 99热首页| 久久金品黃色| 婷婷六月综合激情| 色色色色网| 思思w99| 日韩草草草草草草草草草草草草| 色色是色N一| 五月丁香六月婷婷成人| 色五月天成人| 丁香色婷婷| 色播综合| 欧美精品999| 精品久久久久久久久久久久人妻| 99热这里只有精品18| 五月天操逼网| 高清无码网址| 中文字幕网站在线观看| 色色色色色级无码| 色色热| 伊人五月综合网| 日韩色色色色| 操操操操操操婷婷五月天| 丁香六月高清视频| 婷婷金品综合视频| 人人综合91网| av人人操| 成人无码髙潮喷水A片| 99日本黄站| 九九精品综合| 日日干日日| 久99在线视频| 婷婷丁香午夜综合影视| 六月婷婷激情| 9 1在线视频| 九热av| 一级片无码| 丁香九月婷婷| 91超碰九色| 99色嘟嘟精品网站| 婷婷激情蜜桃玖玖丁香| 深爱激情综合网| 亚洲久艹| 成人性爱无码| 综合久久综合久久| 色婷婷在线播放| 97色色婷婷| 玖玖在线视频| 天天爽天天爽夜夜爽| 五月婷婷片| 色欲色香,www,com| 激情婷婷五月天在线观看| 无码激情| 久久九区| 99九九久久| 激情久久网| 精品99网站| 六月婷婷五月丁香| 丁香六月婷婷激情综合| 综合五月天| 五月丁香久久综合| 亚洲超碰在线| 99九九视频| 色色五月天婷婷丁香| 久久综合五月天| 婷婷俺去也| 少妇高潮呻吟A片免费看软件| 淫五月停停| 亚洲人妻Av| 天天噜噜| 亚洲秘 无码一区二区三区妃光/1| 五月丁香999| 99激情视频| 亚洲激情综合网| 五月丁香六月婷| 99 福利 导航| 五月丁香六月婷婷久久肏| 亚洲AV无码电影| 久久 这里只有精品1| 国产成人精品一区二区三区视频 | 五月丁香久久综合| 久久这里99| 五月婷婷丁香在线视频| 五月成人天| 久久久久9| 午夜九九电影| 91在线视频观看午夜福利| 亚洲激情五月丁香久久久久| 日美三级| 天天干天天爽天天爽| 最近韩国日本免费高清观看| 激情网狠狠干| 大大香蕉综合在线| 大香蕉婷婷久久| 亚洲情色一区| 五月丁香六月激情| 深爱激情婷| 丁香久久久| 色综合久久99色| 激情内射p| 91超级碰在线视频| 丁香花综合永久入口| 91超碰人人操| 国产午夜精品一区二区| 亚洲一级AV在线免费播放| 青青草成人网| 五月天天丁香婷婷在线中| 亚洲婷婷五月天| 国产精品-第3页-91JQ就要激情网91JQ5.JQJQ926.XYZ | 99热在线观看| 久热亚洲| 国产Va视频| 婷婷六月丁香五月图区| 激情av在线| 99九色视频在线观看| 亚洲国产99| 美女主播野战视步页| 久久免费高| 开心五月激情网| 色婷婷XXXXX| 97在线观视频免费观看| 97碰碰视频| 婷香五月网在线| 色综合久久久无码中文字幕999| 五月天激情www| 97久人人| 五月丁香色欲| 精品人妻久久久久久| 五月色丁香国产在线视频| 欧美婷婷综合网| 婷婷丁香在线| 嫩草乱码一区三区四区| www色婷婷久久综合久色| 蜜乳AV成人| 日韩成人中文字幕| 综合色激情| 五月天色婷婷av| 婷婷在线视频| 在线观看免费狠狠色丁香香综合| 五月天播播| 丁香五月综合网| 色色欧美色色色| 玖玖资源站中文| 五月婷色| 91久久精品无码一区二区三区| 嫩草AV久久伊人妇女超级A| 五月天综合在线观看视频| 亚洲五月丁香综合网| 99久久久精品| AAA级久久久精品| 99riAV国产精品视频| 天天日日天天| 99惹在线精品免费观看| 久久人人超| 亚洲激情四谢| 中字幕视频在线永久在线观看免费 | 蜜乳A√| 国产激情在线| 午夜福利8055| 久久香蕉影院| 五月天婷婷基地综合网| 色婷青青| 91狠狠综合网| www.五月婷婷.com| 丁香五月婷婷亚洲综合精品| 九九热中文| 丁香五月婷婷偷拍| 97色在线观看视频| 五月婷婷综合激情| 爱之国产色情综合| 成人精品视频99在线观看免费| 99热这里只有的精品视| 99视频这里只有久久精品| 99婷婷| 色综合综合网| 操97在线观看| 思思久久精品| 超碰97人人操| 日本欧美成人片AAAA| 六月丁丁香| 99热97| 丁香婷婷在线| 99亚洲日韩| 日逼免费视频 | 噼里啪啦在线观看免费完整版视频| 永久免费一区二区三区| 欧美在线视频免费播放| 26uuu丁香婷婷五月| 日婷婷久久开心| 色色综合视频| 亚洲色激情| 久久99久久99精品免观看软件| 欧日韩AV| 精品人妻久久久| 婷婷丁香水多多视频| 婷婷亚洲五| 99小视频| 99热欧| 日本激情ⅩXX免费视频| 就爱啪啪婷婷| 五月激情五月婷婷五月天在线| 大香蕉五月天婷婷| 1024婷婷综合久久五月天| 六月婷婷日| 嫩草AV久久伊人妇女超级A| 五月丁香人妻| 五月婷婷狠天天色综合| 99自拍视频在线观看| 亚洲午夜电影| 99综合婷婷五月| 激情五月婷婷丁香综合网| 66色在线日韩| wuyuedingxiang99| 九九精品系列| 免费观看的av| 久久久精品色| 五月激情丁香六月狠狠干| 国产婷伊人| 婷婷99狠狠| 五月天婷a在线| 韩国不卡AC视频| 色情婷婷久久五月天| 五月天激情小说| 性按摩玩人妻HD中文字幕| 色天堂婷婷| 日本欧美国产| 色五月情| 日韩在线99| 亚洲激情 久久| av首页在线| 五月天婷婷综合色| 丁香五月婷婷天堂大香蕉| 噜噜五月天综合| 98永久精品| 日韩高清成人| 99热6这里只有精品6| 婷婷一本和五月丁香| 夜夜夜叫天天天做| 国产精品国产| 双性美人被调教到喷水A片| co超碰在线观看| 9 1大香蕉| 成人五月丁香社区| 亚洲中文乱字字幕线在永久| 欧美激情中文字幕| AV色婷婷| 婷婷色九月| 玖玖在线| 婷婷瑟五月天久久综合| 婷婷综合亚洲| 99啪视频在线观看| 中文字幕日本最新乱码视频| 99热这里| 狠狠色综合久久| 色五月丁香五月| 99热这里只有精品最新地址获取| sS丁香五月婷婷| 91视频久久久| 中文AV网站| 99色在线| 色播婷婷五月天| 丁香六月五月婷婷| 婷婷 激情 五月| 99在线视频免费| 婷婷五月在线影院| 丁香婷婷色五月| 日本在线视频播放91| 亚州AV超碰人人操| 六月天无码网址| 丁香婷婷久久 | 欧美三级欧美一级| 六月婷婷在线视频| 99re这里只有精品首页| 九热在线这里有精品6| 九九这里是免费的视频5| av婷婷丁香| 天天天天操| 亚洲综合成人网| 日本成人噜噜噜| 五月天激情婷婷小说| 色久在| 丁香五月另类色婷婷麻豆| 91在线观看www| 久久久天堂国产精品女人| 婷婷色综合| 成人在线精品| yellow视频在线观看91| 久久婷婷久久| 久操综合| 超碰99在线观看| 大香蕉久久久| 午夜成人AV在线| 无码色| 天天做夜夜爽| 天天日夜夜爽| 九九色播五月丁香| 久久婷婷色综合| 囯产精品久久欠久久久久久九大| 欧美丁香五月| 日本女人久久| 在线观看的av| 五月亭亭直播| 五月天婷婷色色| 99热免费| 天天色情站| 久久婷婷伊人| 国产高潮A片羞羞视频涩涩| 狠狠色色| 亚洲成人影视在线| 国产精品24r| 色拍九九九| 丁香五月天社区婷婷| 久久久9久| 4438全国最大视频成人网站在线观看| 久婷自拍视频| 成人精品人妻| 99热99在线| 激情色中文| 天堂爱爱| 五月综合色播播丁香婷婷| 99亚洲无码| 婷婷丁香五月亚洲| 婷婷五月天综合久久| 久草A片| 五月天婷婷视频| 久久久久人妻| 草草女人亚洲| 丁香六月成人网| 国产亚洲99久久| 色色五月天网站| 天天艹天天综合网| 五月婷在线色视频| 五月天成人小说| 99热碰碰| 噜噜噜狠狠色综合| 97超级啪啪在线观看| 五月丁香综合久久夜夜| 97热这里精品在线视频| 26uuu国自产精品| 深爱婷婷色| 思思热久久爱| 国产成人AV在线播放| 久久色情| 五月婷婷香蕉| 天天搞天天色综合| WWW、日本色丁香co m| 六月丁香五月激情网| 久久性爱视频这里只有精品| 丁香五月六月综合激情| 色99视频| 九九九九无码| 99re99热| 五月草视频| 婷婷丁香在线| 香蕉影院色| 日本色色网站| 伊人久久婷婷五月天激情四射| 色色色色色网站| 在线中文av| 无遮羞AV| 九九久久99精品免费观看www| 综合综合色色| 五月激情婷婷播播开心| 任你草| 丁J香六月首页| 色色婷婷五月天| www.五月丁香av| 久操福利| 久久婷综| 久久久com| 热99热9| 婷婷99狠狠躁天天| 97碰碰久久| 九热精品| www.五月天激情| 色色五月天激情| 五月激情四射网站| 久久久久这里都是精品| 日韩啊啊啊| 五月综合激情| 手机在线日韩视频中文字幕| 色婷婷六月天在线| www.五月天婷婷| 色都都狠狠色都都色综合色| 亚洲视频色色| 丁香婷婷五月色成人网站| AV网在线| 久热精品视频在线观| 人人草人| 久在线88综合| 五月婷婷啪啪| 开心五月婷婷| 久在线综合69| 五月永久激情| 婷婷五月色天| 人伦30P| 五月婷婷伊人在线| 国产亚洲成AV人片在线观黄桃| 日本九九网| 亚洲精品性色| 亚洲中文字幕在线观看| 大香蕉综合| 舔色婷婷| 伊人在线大香蕉网| 色噜噜狠狠色综合日日免费| 天天日夜夜拍| 成人av在线网址| 婷婷激情丁香六月| 性色做爰片在线观看WW| 欧韩性爱| 69精品人人人人| 色色色色色色五月婷婷| 婷婷五月天六月| 午夜不卡久久精品无码免费 | 精品久久99| 婷婷久久五月天丁香| 十月丁香九月婷婷综合| 欧美色片中文字幕久久久久| 操人妻90p| 丁香色五月 97干| 久操人| 99国产小视频| 一级视频网址| 丁香激激情网| 久久久久久久久月丁| 九月婷婷综合八月丁香在线观看| 99久久这里只有精品| 99操中文视频| 久热成人| 亚洲精品电影| 婷婷丁香色五月| 99在线视频播放| 99色视频| 99男人天堂| 26uuu成人网| 日韩精品无码AV| 婷婷五月天在线观看第二页| 永久天堂日本| 五月天婷婷在线AN| 激情五月天婷婷色色色色色色色色色色色 | 黄网免费看| 综激情网| 91精品国产91久久久久青草| 天天日,天天插| 色一情一乱一乱一区91| 99re思思热久久| 精品婷婷| 久草热在线视频| 婷婷六月激情小说网| 91精品综合久久久久久五月丁香| 九九国产视频| 91精品91久久久中77777| 色色爽爽天天| 丁香五月香蕉| 思思视频这里是精品| 六月丁香网| 亚洲视频丁香网va| 久久精品无码一区| 亚洲第一精品网站| 五月丁香综合成人社区| 日本色图综合| 五月天无码| 依人大香蕉| 成人婷婷深爱综合网| 日本女色人人| 婷婷干五月综合在线播放| 丁香五月婷婷亚洲激情四射| 九九99精品视频| 99ri在线视频| 九九热精品视频在线观看| 就爱啪啪婷婷| 婷婷六月天| 六月婷婷色色色| 国产亚洲99久久精品| 91超碰人人操| 亚洲免费99| 丁香五月综合无码趴趴| 五月丁香综合啪啪| 深爱激情AV| 拍色综合| 超碰精品在线| 四色女婷婷| 日本久久极品| 亚洲色综合| 欧美综合激情五月丁香| 九月婷婷在线观看| 91Chinese在线| 狠狠五月天婷婷| 色情成人五月天| 91人操| 狠狠狠婷婷五月综合| 婷婷五月激情黄色| 色色五月天丁香婷婷| 色婷婷基地在线| 丁香五月婷婷av影院| 99视频只有精品| 久久香蕉网| 《亚洲操B久久免费在线观看,亚洲操B久久在线播放》在线播放 - 高清资源 - 97 | 欧洲亚洲免费视频9| 色五月色综合| 99九九热在线观看| 狠狠操天天日| 国产精品日日躁夜夜躁| 熟妇人妻中文字幕无码老熟妇| 99久热这里只有精品| 色婷婷丁香五月天| 婷色综合| 996热| 五月亭亭六月天| 色色日韩网| 色婷婷av综合网| 97色碰| 亚洲激情免费视频| 国产亚洲在线观看| 天堂在线婷婷| 亚洲婷婷五月天| 天天日夜夜爽| 激情综合网亚洲色图| 五月天婷婷基地综合网| 5月丁香美女影院| 91久久久久久| xxx.色婷婷| 成人精品一区二区三区四区五区| 丁香六月婷婷社区| 日韩中文字幕| 日日噜狠狠| 九九性视频| 天天日天天干天天爱| 亚洲人妻电影| 99视频热99| 日本欧美成人片AAAA| 色屌丝中文字幕| hd五月婷婷在线| 丁香六月婷婷综合| 色五月自偷自拍婷婷婷婷| 97高清国语自产拍| 99ri视频| 色综合五月| 天堂草在线观| 天天在线久久综合| 天天骑日日爽| 99碰网站| 色婷婷AⅤ| 九月激情婷婷丁香| 久久婷五月天| 一区二区三区视频| 九九热免费视频| 久久婷婷五月综合色丁香| 亚洲成人色五月天| 99热最新网址| 伊人玖玖精品| 婷婷丁香综合| 色开心五月婷婷丁香HD| 成人草榴视频| www99热| 久久99综合| 九九热re99re6在线精品| 玖玖资源站蜜臀| 日批在线看| 亚洲人人96@| 全亚洲最大的婷婷五月天网站COM| 99久久精彩视频| 色吊操色妞| 伊人婷婷福利网| 日产精品久久久久久久蜜臀| 久久久婷婷婷| 噜噜在线| 99啪啪视频| 亚洲视频99| 色五月天堂| 9l视频自拍9l九色9l成人| 99热这里只有精品4| 日韩99色99| 亚洲色 视频| 五月丁香狠狠地噜噜噜噜| AV美美午夜| 亚洲日韩人妻操逼| 这里只有精9| 欧美成人无码一区二区三区| 激情五月开心五月在线视频| 久久久思思热| 免费看欧美成人A片无码| 亚洲超碰在线| 大香蕉伊人久久| 婷婷精品| 中文字幕乱码亚洲精品一区| 激情操逼婷婷| 亚洲精品九九| 五月婷婷丁香网| 99热九九在线| www.99日本| 99热免费精品| 免费黄色视频网址| 玖玖婷婷精品| 婷婷色吧| 色玖玖玖| 丁香伊人五月色婷婷五十路| 五月丁香婷婷99| 婷婷色狠狠| 人操人人| 久久久香| 丁香蜜臀黄色婷婷五月天| 伦乱美欧| 5月丁香六月婷婷| 欧美VA在线| 色婷婷超碰| 在线另类| 亚洲国产精品二二三三区| 亚洲五月六月婷婷| 色色婷婷婷丁香五月天| xxxx久| 激情小说五月天社区丁香| 99热精品在线播放观看| 婷婷六月中文字幕| 婷婷六月丁香欧美视频在线| 九九re精品视频在线观看| 天天狠天天叉| 六月成人网| 激情五月狠狠喔| 开心五月婷婷婷美女| 五月丁香啪啪| 丁香五月久久综合| 人人摸人人| 大香蕉久久| 久久精品一区二区三区四区| 亚洲成人av在线观看 | 色婷婷影| 色色精品色| 五月丁香久久久| 色色a| 久热这里只有| 国产激情一区| 99热1| 婷婷五月情色| 激情綜合W W W,激情五月天| 丁香六月啪| 性按摩玩人妻HD中文字幕| 五月天婷婷涩涩| 五月天大香蕉| 天天射夜夜骑| 五月天色色网站| 精品9197碰| 久艹大香蕉| 激情欧美婷五月| 久久国产色| 婷婷五月影院| 九久热| 日韩欧美五月丁综合| 日本成人小说婷婷六月| 97精品欧美91久久久久久久| 超喷97免费在线视频| 日韩黄色网络| 丁香六月毛片| 久久九色| 久久综合五月情| www久久久| 久久五月综合| 综合激情婷婷| 在线伦子99热| 五月婷婷五月天天| 99这里有精品视频| 一本婷婷丁香久久 | 免费操超碰| 天天摸,天天爽| 欧美大道不卡| 丁香五月天久久| 色综合丁香| 日韩色五月| 最近韩国日本免费高清观看| 婷婷爱爱蜜臀天天操| 欧洲区自拍| 天天爽夜夜爽夜夜爽精| 另类小说五月天| 99燥99日| 色色色色色热| 五月婷婷啪啪| 久久99久久99精品,久国产,久久精品免费,99久在线,久久久久国产精品免费网站,9 | 久9热插入| 婷婷欧美偷拍综合| 丁香 久久| 久久人人添人人爽添人人片αV| 大香蕉九九| 人妻久久久久久久| 天天狠狠综合精区| 欧美群妇大交乱婬网| 亚洲综合五月天婷婷丁香| 色婷青青| 这里只有视频精品| 色婷五月| 天堂网色色| 五月丁香六月香综合激情| 色婷婷狠狠18禁| 亚洲成人高清在线| 开心激情综合| 丁香五月 性爱| 成人网站免费sxj| 色综合五月天| 九九九热精品| 天天综合五月| 97AV人人插人人操| 激情美女五月天激情在线| 婷婷激情五月| 婷婷月五天在线在线看| 色色色国产| 色情开心五月| 亚洲综合五月天婷婷| 99久久户外勾搭| 五月婷婷丁香深深爱| 97人妻碰碰中文无码久热丝袜| cao久久| 夜夜夜夜撸夜夜操| 亚洲中文字幕在线电影| 国产精品色色色色| 免费无码毛片一区二区A片| 丁香亭亭久久| 久久九九色| 综合久久婷婷| 国产亚洲在线| 九九色热| 日日干天天| 激情亚洲婷婷| 婷婷深爱五月丁香| 嫩草AV久久伊人妇女超级A| 超碰九九热| 九九综合伊人| 91狠狠色| 热99在线| 人妻九九九九| 日韩久久视频| 丁香五月AV| 婷婷六月激情综合| 北条麻妃九九九国产精品视频| 亚洲色婷婷| 热99在线| 丁香五月天信号| 激情五月天在线视频| 久久新地址| 大香蕉伊人久久| 日韩啪啪网| 狠狠色噜噜狠狠狠狠综合| 色婷婷影视| 婷婷五月天AV| 精品99爱免费视频在线观看| 激情综合网激情五月婷婷| 久久99久久99精品免观看软件 | 婷婷激情五月综合| 色色色色色综合| 久re热视频| 午夜亚洲国产精品av一区二区| 国产操碰| 密黄站| 桃色成人网| 色婷婷丁香五月综合| 综合超碰熟| 婷婷射综合| 丁香五月激情婷婷视频| 天天干一干| 9999热这里只有精品| 狠狠色噜噜色狠狠狠综合色| 丁香婷婷六月| 日本九九九九| 亚洲熟妇AV乱码在线观看| 色了色综合| 色婷亚洲| 26uuu亚洲| 天天天天天操| 午夜九九九九九九| 色色色婷婷五月天| 激情六月下句是什么| 亚洲成人无码专区| 久久金品黃色| 五月婷婷色色| 99综合视频一体| sisi热国产| 无码激情AAAAA片-区区| 天天射天天射一道本日本社区| 久9热插入| 五月丁香色| 婷婷热婷婷色| 伊人久热91| 丁香六月激情| 99热18| 97av在线视频| 五月色欧美| 操b视频在线观看一区二区| 婷婷五月激情丁香| 欧美久久网| 欧美激情五月天| 色色色色色色色色网站| 日本99视频精品免费播放| 丁香五月电影| 996热re视频精品视频这里| 色五月婷婷影院| 性爱视频久久| 久久a热| 丁香五月婷婷啪| 影音先锋91在线资源站| 日韩欧美一级大黄网站| 99操逼| 激情 久久 婷婷| 久久久久亚洲AV无码网影音先锋| 天天在线天天综合网色| www91久久| 亚洲精品V天堂中文字幕| 欧美va在线观看| 亚洲视频色色| 91无码高清| 亚洲夜夜操| 91色久| 神马久久五月天| 丁香桃色网| 五月开心色| 成人深爱丁香五月| 国产99久9在线| 婷婷五月天激情网| AV成人在线播放| 深爱激情av| 九九av| 九九九九成人| 日韩成人无码| 玖玖综合色| 久久婷婷综合五月趴| 激情综合五月激情| 99人人操人人爱久久久| 九九爱激情| 人人干人人看| 日日夜夜天天| 久久思思热视频| 另类的婷婷| 久久久性爱网| 久久天堂女人| 久久在线视频免费观看| 大香蕉人妻| 99精品综合视频| 色播丁香婷婷五月激情| 丁香六月婷月91婷月| 六月色激情| 狠狠爱丁香婷| 国产FREESEXVIDEOS性中国| 久久九九爽| 六九色综合婷婷五月天| 99色一| 蜘蛛女免费观看完整版高清电影| 久久婷婷五月天激情四射| 第四色色六月色综合| 婷婷色综合| 啪啪啪大香蕉| 开心激情站| 五月草视频| 国产成人va在线| 99色啊| 亚洲色涩视频| 热久久91| 五月天婷婷操逼视频| 亚洲AV电影美洲AV电影| 亚洲中字AV电影在线网站| 9999久久久久| 播播网色播播| 色在线99| 激情五月婷婷综合| 婷婷五月花西瓜| 久久婷婷婷婷伊人| 日日爽日日操| aaaaaa片| 天天舔夜夜操www com| www99热| 在线中文av| 激情99热| 97精品在线| 五月天丁香成人社| 99久久视频| 色婷婷瘦婷婷日韩| 色九综合| 综合久久狠狠| 亚洲人妻AV| 99人碰碰碰| 色99在线视频| 色播丁香婷婷五月激情| 97色色色视屏| 97人人草| 欧美 日韩 成人 在线| 四射综合网| 欧美久人人| 色域五月丁香| 夜夜嗨一区二区三区直播内容 | 婷婷五月综合网| 欧美黄色AA片哗啦啦啦| 天天高潮夜夜爽| 91人人爽久久涩噜噜噜| 九九热99热| 国产成人亚洲综合A∨婷婷| www,天天干| 9久热这里只有精品视频| 99热最新网址| 国产精品婷婷午夜在线观看| 欧州色色| 国产精品色色| 五月天婷婷基地| 婷婷五月天激情四射| 99色天堂| 五月天久久久| 97久久人人人干| www.久久99精品| 国产综合久久久777777| 久久性刺激| 亚洲精久久| 丁香婷婷综合五月天| 激情五月婷婷伊人| 丁香五月综合福利视频导航| 五月天婷婷成人资源站| 五月婷婷开心综合| 久久婷婷五月天激情四射| 91超碰在线观看| 婷婷五月丁香五月| 婷婷激情久久| 婷婷在线日韩综合| 久久久精品99| 67194成I人在线观看线路1| 婷婷五月丁香六月伊人网| 久久午夜理论| 天天玩夜夜操| 高清视频一区| 乱岳熟女50岁| 激情五月天婷婷丁香| 丁香五月婷婷亚洲综合精品| 综合五月丁香久久| 丁香五月婷在线观看| 中文成人在线| 五月婷婷六月丁| 丁香六月婷婷综合在线| 婷婷色在线播放| 精品人妻一区二区| 欧美日韩成卜| 蜜乳人妻一区二区三区| 亚洲AV成人精品日韩在线播放| 免费99情趣网视频| 思思久久99热只有频精品66| 2020日日干| 成人在线视频网| 97色五月丁香婷婷| 五月丁香琪琪| 99热这里只有精品13| 激情图片五月天| 99久久久| 丁香五月婷婷激情四射深爱激情| 欧美久人人| 婷婷第六色| 五月婷婷丁香在线| 久久婷婷色色| 欧美色五月| 伊人99热| 爱iii做iiii日| 91丨九色丨白浆秘| 狠狠色狠狠鲁| www.日本91| 亚洲妇女熟BBW| 久久久九九九 99| AV堂狠狠干| 欧美va在线| 久久激情网| 五月J香蕉婷婷| 久久精品五月天| 五月丁香啪啪啪啪| 性综合网| 亚洲最大成人综合网720P| 影音先锋91资源站| 五月色无码| 五月丁香色婷婷久久| 亚洲电影在线观看| 综合色影| 呦呦视频无码播放| 在线婷婷| 激情婷婷黄色五月| 99'无码| 色综合久久中文| 狠狠婷婷色| 日韩淑女人妻luan伦激情精品一区二| 热久久成人| 婷婷五月天狠狠搞干| 天天插天天插| 欧美日韩国产伦精品日韩人妻一| 五月丁香网中文字幕| 99久.| 欧美人人草草| 玖玖在线资源视频| 9久久久久久久久久久| 婷婷五月天 丁香五月天 裸体| 色欲久久综合| 日本狠狠网| 久久综合99综合| 超碰chaompinm| 日本色啪| 婷婷五月激情五月丁香五月| 丁香 婷婷五月| 26UUU欧美激情一区二区| 色五月天婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷 | 五月丁香激情婷婷| 婷婷九月| 91精品久久久久久久| 丁香五月天啪啪a日本| 天天射影院| 狠狠爱综合网| 开心五月婷婷| 色婷婷AV在线观看| 五月花成人网| 国产性爱亚洲是图| 色综合视频| 久热这里只有精品99re| 黄桃AV无码免费一区二区三区 | 久久婷婷网站| 大香久久伊人网| 婷婷激情五月天小说| 丁香婷婷综合激情五月色| 欧美日综合| www.婷婷.com| 黄色中文字目| 五月丁香亭亭成人电影| 五月丁香六月欧美综合网站| 五月久久网| 99热久| 碰人人97| 99在这里有精品| 五月婷婷激情综合网| 超碰在线观看9| 五月激情影院| 九九久久污| 欧美婷| 亚洲激情五月| 丁香五月色| 9l视频自拍九色9l视频在线观看| 欧美国产一区二区三区| 99se丁香| 99色一| 日韩青青| 色情免费视频播放| 超碰人妻公开在线| 成人网站免费sxj| 丰满少妇猛烈A片免费看观看| 精品国产va久久久久| 五月综合久久| 国产亚洲在线观看| 国产成人99久久亚洲综合精品| 超碰成人在线观看| 婷婷99视频精品| 亚洲在线资源| 婷婷综合色色| 婷婷丁香六月| 国产性爱亚洲是图| 色狠狠狠干| 另类在线| 天干干夜夜操| 精品爱欲五| 日日肏夜夜干| 婷婷综合在线网| 色色色9| 久久九九九九| 色色网站在线| 亚洲爱婷婷| 色爽九九| 97狠狠色| 99精品综合| 亚洲五月婷婷在线| 五月天婷婷综合网| 精品久久99码| 久久婷婷综合国产| 狠狠综合久久综合| 国产裸舞表演WWWW| 波多野结衣不卡AV| 五月婷婷视频啪啪美女| 国产AV一区二区三区日韩| 大伊久久| 九月丁香网婷婷| 五月丁香婷在线| 婷婷五月天丁香激情| av网址在线| 婷婷五月天激情四射五月天激情| 99色色网| 另类综合婷婷五月天欧美视频| 狠狠爱婷婷| 天天做天天爱| 先锋男人99资源| 黄页免费一级视频懂色| 丁香五月久久| 天天做天天爱天天爽在| 久久婷婷免费| 色色五月天婷婷丁香| 五月天婷婷六月激情网| 国产毛片精品一区二区色欲黄A片| 狠狠五月激情婷婷直播片| 超碰99热精品| 久久久网站| 夜夜撸天天日| 国外亚洲成AV人片在线观看| 色五月丁香网| 亭亭五月色男人| 天天日天天摸| 亭亭丁香aV| 色色欧美色色| 久久99网| 综合激情五月四射婷婷| 99久久精品免费精品国产_国产精品久久久久久_国产在线|日韩_久久国产精品电影 | 国产阿姨日皮艹逼内射视频| 婷婷爱五月| 337午夜福利| 成年人夜夜喷水| 另类天堂| 超碰renrenai| 97碰人人操| 国外亚洲成AV人片在线观看| 婷婷丁香色五月| 激情四射五月天| 五月Huangsewang| 狠狠爱五月婷婷| 婷婷五月丁香综合激情小说| 97久久超视频| 日韩aaaaa| 久久性爱视频这里只有精品| 爽极品色| 伊人高清无码| 欧美精产国品一二三区| 国产Va视频| 久久激情综合| 婷婷激情五月天在线| 丁香五月婷婷啪啪啪| 天天做天天爽| 激情五月婷婷伊人| 五月婷婷丁香| www五月婷婷88导航| 激情99| 日本狠狠干| 婷婷五月天色综合| 久久五月情| 五月天国产| 99国产精品久久久久久久久久久 | 思思精品久久艹| 九九十99视频| 成人午夜天| 97久久草草超级碰碰碰| 伊人深爱综合| 亚洲精品乱码久久久久久按摩观| 99燥99日| WWW.婷婷| 99亚洲日韩| 无码se| 婷婷色综合| 99热碰碰| 五月婷婷九月婷婷九月婷婷| 国产欧美日韩性爱| 久久sp免费视频| AA片在线观看视频在线播放| 4399在线日本A片| 色狠狠色综合| 成人精品一区二区三区四区五区| 97在线天堂| WWW.国产| 久操热线| 亚洲色网址| 毛片新网地| 久久这里只有精品5| 五月婷婷丁香啪啪| 国产av第一专区| 日日夜夜天天| 久久久久亚洲AV无码网影音先锋| 天天干天天爽天天操| 影音先锋女人av鲁色资源网小说免费|