欧美成人午夜精品久久久,国产?V天堂一区二区三区,欧美精品va在线观看,亚洲一区二区三区免费在线观看,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热| 丁香六月激情| 激情另类综合| 激情婷婷五月天| 婷婷五月天视| 久久人妻超碰一区| www.丁香黄色五月天人与| 99热日本| 国产婷婷五月天| 成人丁香五月天| 日本一道久久| 久久久激情| 亚洲综合视频天天精品| 国产精品久久久久久久久久| 丁香桃色网| 97碰碰人人视频| 婷婷丁香五月色| 午夜日韩久久久网站| 九九热这里只有精品6| 亚洲色色五月天| 日本三级中国三级99| 丁香久月婷| 丁香五月先锋| 久热这里有精品视频| 午夜天堂一区人妻| jiZZdr| 久久码久久无清| 久久人妻乱| 色色激情五月| 婷婷五月丁香青青草在线| 激情五月婷在线精品| 百度4399有码精品V在线观看| 大香蕉99热| 天天搞夜夜爽夜夜爽| av国产精品| 开心综合激情综合| 9|无码久久久久久| 99燥99日| 亚洲综合色色| 久99热| 午夜爱插插| 99re热在线视频| 5月色婷婷| 五月丁香少妇A| 色欲一二三| www.99热在线| 99精品热| 亚洲无AV在线中文字幕| www 五月天 com| 五月婷婷色色| 1区2区视频| 激情综合4月| 色五月丁香91| 久久精彩免费视频| 国内外色色色色色成人视频| 丁香六月激| 国产古装妇女野外A片| 日夜夜天天| yazhochengrenavwang| 综合激情视频| 看婷婷五月天网| 欧美99热| 激情 婷婷 丁香五月天| 超碰人人干| 99久久久99久久91熟女| 久久人人人人妻| 婷婷亚洲综合| 草五月| 色天堂97| 99热免费| 99热在线精品观看| 九久9精品| 丁香久久在线| 99啪啪| 九九热视频在线观看| 五月婷在线| 九月色婷婷婷| 激情九月婷婷| 五月丁香六月| 丁香五月天激情AV| 伊人婷婷五月天| 去色色五月天| 91丨九色丨首页| 夜夜撸夜夜骑| 国产VA播放| 超级碰91| 国产免费一区二区三区三州老师F1F1.CC| 综合婷婷久久| 伊人婷婷99热精品| 久久综合激情婷婷激情| 天天色天天爽| 色婷婷亚洲| 久久精品凹凸分类| 九九无码| 天天精品视频免费观看| 天天操夜夜夜拍拍拍| 国产精品成人AV在线| 久久婷婷免费| 色.五月综合网| 俺去也五月天| 日韩 中文 欧美| 丁香五月在线观看完整版| 99精品这里只有免费视频 | 婷婷五月天综合蜜桃| 亚洲成人无码网站| 激情丁香久久| 久久综合色情网站| 婷婷丁香五月激情密臀av| 天天色视频| 大香蕉婷婷色| 天天色激情| 激情五月网站| 99视频精品8| 99热永久在线观看| 亚洲激情图文小说| 婷婷97狠狠干| 狠狠婷婷爱| se色婷婷视频| 五月综合激情网| 久久在线视频免费观看| 字幕网AV中文字幕| 人五月天婷婷喷水| 中字幕视频在线永久在线观看免费| 日韩人妻无码专区| 风流少妇A片一区二区蜜桃| 热五月婷婷| 色五婷婷在线视频| Av九九| 91无码高清| 五月天艹天天| 天天操天天曰| 久久久大香蕉| 激情网五月天| 国产精品第一国产精品| 丁香六月成人| 久操人| 色九月综合网| 久综合| 久久大香蕉同僚| w婷婷五月婷婷w| 99A级片| 婷婷99视频精品| 九九综合伊人| 婷婷综合网站| 久久久人妻不卡| 婷婷激情视频| 色色激情五月天| 婷婷激情五月吧| 婷婷欧美偷拍综合| 天天天日天天天干| 另类视在线| 国产99久久久| 丁香五月婷婷色| 噼里啪啦在线观看免费完整版视频 | 九月丁香久久网| 五月天激情小说网| www五月婷婷| 淫视馆av三区| 久久停停超碰| 婷婷性爱无码视频| 99热97| 五月天激情图片| 婷婷五月激情五月激情| 五月综合激情啪啪啪啪啪| 婷婷伊人综合| 五月婷成人| 色五月开心五月激情五月| 99区视频| 国产精品久久久海的味道| 激情五月,激情综合网| 这里有精品2| 五月丁香婷婷深深爱| 色色色婷婷五月天| 久久A极片| W色综合| 99热超碰天堂网| 婷婷九九| 丁香五月综合在线观看| 色色色网站| 九九成人电影婷婷| 噜噜噜狠狠色综| 综合网色| 99热6精品| 婷婷五月天网址| 性爱视频久久| 激情五月天99色| 五月天丁香六月综合| 久久网思思| 在线观看婷婷5月| 91一起操| 狠狠xx| 79色色色色| 99日在线视频| 丁香婷婷激情网站| 久久久人妻久久久| 一级黄色尤物综合视频手机在线观看| 国产 码在线成人网站| 色啦啦视频| 婷婷五月电影| 另类五月激情| 激情五月综合网| 丁香六月婷婷社区| 天天做天天干天天综合网| 久久机热/这里只有精品| 九九热九九| 爱狠射| 激情丁香九九五月综合网| 色婷婷五月天亚洲| 中文资源在线a| BBWCUCKOLD精品熟妇| 丁香久久九九99| 亚洲熟妇AV综合网五月丁香伊人 | 婷婷五月丁香色综合| 婷婷欧美偷拍综合| 久草a片| 激情5月婷婷| 97干欧美| 久艹大香蕉| 日日鲁鲁鲁夜夜爽爽狠狠视频97| 久热久| 日本色色色| 五月色网| 五月丁香啪啪网| 天天日天天草| 蜜臀AV在线观看| aa久久| 2025年最新亚洲在线欧美| 欧洲色色| 丁香五月天啪啪| 久热A| 99色| 这里只有精品视频222| 色丁香久久久| 夜夜嗨一区二区三区直播内容 | 日日夜夜爽爽| 综合欧美五月婷婷| 婷婷五月精品在线| 色色丁香| www.99热最新视频8| 久99久精品视频| 国产av天天插天天操天天爽| 婷婷日日天天| 91性交在线播放| 高潮毛片遮挡费高一百度| 思思国产99| 青草视频在线观看视频| 婷婷五月天深爱| 婷婷另类小说| 欧美久人人| 五月丁香激情六月| 玖玖99婷婷| 日 日干 日日做| 六月丁香五月婷婷| 丁香五月婷婷久久综合激情网 | 激情六月婷婷| 久久99精品久久久久久噜噜| 91成人电影| 大香AV| 狠狠草狠狠草| 激情久久丁香| 久艹大香蕉| 美欧成人视频| WWW.婷婷| 91精品91久久久中77777久久玖玖九九| 99这里只有精品国产| 99热这里全是精品| 激情久久四色| 国产成人精品一区二区三区视频| 日在线V视频在线播放| 色五月激情五月| 五月丁香五月丁香| AA片在线观看视频在线播放| 丁香婷婷免费| 99色综合| 丁香五月婷婷啪啪啪| 可以看的av网站| 丁香久久激情俄| 色婷婷五月天视频在线| 综合激情肏逼网| 狼人婷婷综合| 日本色频| www,奇米影视| 色爱亚洲| 99精品在线| 五月丁香婷婷综合| 99热青青草原| 色吊丝av中文字幕| 亚洲国产成人在线| 疯狂做受XXXX高潮A片动画| 亚洲午夜视频| 9久热| bbwcuckold精品熟妇| 丁香激情网| 丁香五月第四色88| 海外网站专业操老外| 99综合自拍| 色五月天激情| 久久综合婷婷激情| 99网99热| 丁香香五月激情免费视频| 亚洲精品字幕| 99色热视频在线| 亚洲AV人人操| 超碰日韩人妻在线| 五月婷婷九九热| 伊人久久五月天| 开心激情站| 可以直接看的AV网站| 青青日韩| 九九性视频| 日日操,天天操| 99资源人人| 最新av在线观看| 思思视频这里是精品| 婷婷六月天国产综合| 天天爽夜夜爽夜夜爽精品视频| 99热在线资源| 99re这里只有| 亚洲天堂aaaa| 99热热九九| 九九九九九999999| 丁香婷婷六月天| 丁香六月AV| 国产古装妇女野外A片| 五月丁查人人| 丁香五月天激情五月天激情五月天激情网 | 97碰碰电影| 99免费热视频在线| 丁香五月婷久久| 色欲丁香| 欧美日本97| 日本色天堂| 精品综合久久久久久五月天| 99久久婷婷五月综合| 青青青在线视频国产| 久久99性爱视频| 色色色婷婷五月| 五月开心播播网| 五月丁香啪综合| RenRenSe在线视频网站| 最新日韩久热免费视频看看| 色99视频| 天天操天天插| 日本成人小说婷婷六月| 五月婷五月婷伊人伊人五月婷| 婷婷成人av| 五月天婷婷色综合| 97福利视频| 182tv992tv人之初午夜免费观看| 天天操天天操天天操天天操天天操天天操天天操天天操天天操 | 天天舔天天摸视频| 亚洲天堂亚洲色色色| 一婬一伦一区二区三区| 国产精品扒开腿做爽爽爽A片唱戏 青青草国产亚洲精品久久 | 97深爱伊人综合| 秋霞日本免费毛片A片| 国产精品人人做人人爽人人添| 色婷久| 五月丁香久久激情网| 欧美久久婷婷| 久久九九re热| 婷婷五月天综合久久日美女| 成人做爰黄A片免费看直播室男男| 97精品欧美91久久久久久久| 激情五月天伊人av| 亚洲色综久久五月| 五月五丁香婷婷| 99视频久久| 综合久久六月| 久久R激情| 日日爽夜夜爽| 日本99热| 日韩欧美颜射| 婷婷性爱网| 六月婷婷开心| 亚洲热久久| α久久| 狠狠香婷婷五月| 中文字幕,综合,91| 五月婷婷之综合激情在线| 被强行糟蹋的女人A片| 欧美成人A片AAA片在线播放| 性欧美日本| 99久久九九| 婷婷爱综合| 久久五月天激情美女| 久超超碰| 色天堂A| 丁香五月婷婷天堂大香蕉| 国产精品成人网址| 久草x色在线观看99| 日日夜夜天天| 狠狠干综合| 天天做天天爽| 性爱综合网| 丁香五月综合| www.色综合| 玖玖热视频| 亚洲黄色影视| 国产avapp 网| 天天噜| 思思热在线视频99| 九九操综合网| 色狠狠六月| www。五月天。com| 婷婷激情五月综合在线视频| 天天爽夜夜爽| 激情综合色婷婷六月天| 五月天伊人网| 91久久精品无码一区二区三区| 丁香婷婷月| 色色色色网| 狠狠草综合网| 五月天色影院| 精品久久久999| 婷婷九月亚洲| 婷婷激情六月| 人妻丰满精品一区二区A片| 久久综合五月天| 人人爱操| www.婷婷| 国产欧美大香蕉一区| 97色一二三| 久久九九经典| 全高清无码视頻| 91seav| 六月丁香婷婷色狠狠久久| 国产精品久久久99视频| 亚洲五月天综合| 久色成人| 色婷婷狠狠18| 成人片在线播放| 色婷丁香| 国精产品一区一区三区免费视频| 色色色色色色色五月| 九九精品re免费视频| 色五月婷婷自拍| 91ncm视频| 级情九色| 婷婷国产日本欧美| 五月花综合视频| 色噜噜狠狠色综合网| 久久99久久久久久| 婷婷五月天VI| 9热视频在线观看| 五月天婷亚洲天综合网综合| 久久视频这里99| 婷婷中文字幕| 丁香六月激情综合| 91男同视频| 一级黄色操B| 亚洲不卡欧洲| www.思思99热| 99热这里有精力| 色大综合| www.婷婷五月| 黄色AV日韩| 亚洲国产精品SUV| 亚洲天堂制| 日韩AV在线免费观看| 丁香五月天偷拍| 婷婷五月天综合小说网| 天天狠狠夜夜狠狠2023| 中文字幕乱码亚洲精品一区| 五月停停999| 欧美久久五月婷婷| 99久久玖玖| 五月天色五月| 97超碰欧美中文字幕| 五月婷婷xxx| 99爱欧美| 婷婷丁香色情| 免费91久久精品| 五月婷久久草| 人妻操操色| 婷婷99狠狠躁| 99热在线观看| 国产精品久久..4399| 五月丁香 啪啪啪| 9久久婷婷国产综合精品性色| 国产古装妇女野外A片| 91在线操| 天天爽天天日人人爱| 午夜丁香婷婷| 亚洲乱码日产精品BD| 日本色色网站| 天天更新天天亚洲| 97久久人人| 婷婷伊人五月天| 欧美日韩99| 天天爽天天摸| 色婷婷五月天在线观看| 七七色色综合| 天天爽天天日天天舔| a在线观看| 夜色综合网| 丁香五月天五码婷婷| 五月婷色色| 日本久碰| 亚洲Av入口| 99热天堂| 久爱综合| 亚洲性受XXXX五月丁香| 亚洲第79页| 五月婷婷激情| 四射综合网| 我要色综合五月婷婷| www九九热| 日hao1区| 婷婷五月天第三页| 无码碰碰| 插插五月天| 日韩999| 欧美三级欧美一级| 人妻视频在线| 欲求不满的人妻| 国产伦理精品高清在线观看网站一区二区| 天天干电影| 色99视频| 激情五月天婷婷久久久久久久久久久 | www.五月丁香| 亚洲av免费在线| 婷婷丁香五月婷婷| 久热在线观看视频9| 婷婷激情啪啪| 婷色五月| 五月天色婷伊人| 99色在线视频| 99热欧美| 97 A I色色| 99色网站| 91九九| 亚洲成人一区| 色色吧综合| 成人在线不卡| 久久久91| 99热最新网址| 能看的AV| 五月丁香拍拍激情综合| 亚洲另类在线观看| 色,激情五月天| 色五月婷婷中文字幕| 日韩 mm 不卡| 欧美va在线观看| 91天堂网综合| 色色色热| 亚洲在线综合| 丁香五月婷久久| 免费黄色视频网址| 射久久丁香五月| 丁香五月综合首页| 色五月婷婷操逼| 91久久综合| 草一草avb| 亚洲最大在线| 91久久99久久91熟女精品| 丁香午月AV中文字幕| 五月婷丁香| 男人的天堂999| 久久亚洲婷婷| 五月婷婷免费视频| 97偷拍在线视频| 久久丁香五月天| 丁香玖玖| 狠狠狠狠狠狠狠狠| www.五月天性.com| 中文字幕成人日韩| 五月婷啪啪| 99色热| 婷婷综合五月| 久久AV电影| 综合超碰熟| 婷婷综合精品| 亚州激情在线视频| 激情婷婷激情在线不卡| 欧美乱码国产一级A片| www.精品99| 婷婷伊人网| 亚洲婷婷激情888精品久| 97婷婷五月| 婷婷综合一二三| 狠色综合网| 国产乱妇乱子在线播视频播放网站| 岛国av电影网站| 婷婷中文网站| 99无码视频| 思思热再线视频| 激情久久综合网| 性欧美日本| 99热91| 婷婷五月丁香五月| 五月天亚洲色| WWW.天天日| 五月丁香久久综合91| 丁香激情五月| 69五月天视频| 亚洲视频无| 99热精品在这里| 五月婷婷伊人网| 91刘玥视频在线观看| 九九热精品| 丁香色五月婷婷91桃色| 久婷| 99热草草| 狠狠干狠狠色| 夜夜操,天天撸| 婷婷五月天久久久| 精品少妇人妻AV无码专区偷人 | www色五月| 成人精品99| 日本久热| 第四色色六月色综合| 色人久久| 噜噜精品| 桃色激情婷婷伊人网| 丁香五月婷婷www..com| 91狠狠综合久久| 丁香五月婷婷乱| 99在线精品视频| 艹B高清无码| 中文字幕在线不卡| 久久视频这里99| 66精品国产成人| 天啪天啪天啪天啪| 五月天色五月| 日本啪啪网| 色综合日日| 99久热| 9热久久| AA片在线观看视频在线播放| 欧美成人A片AAA片在线播放| 久久99热免费最新版| 狠狠色婷婷丁香六月| AV操逼网| 激情综合在线播放| 久久婷婷丁香花综合网| 色综合色| 婷婷丁香五月麻豆| 婷五月天| 五月丁香婷婷激情澎湃四射| 五月丁香六月欧美综合| 亚洲色啪| 丁香五月激情啪| 在线亚洲综合| 五月婷三级片| 99性视频| 亚洲国产成人综合| 丁香六月婷婷久久综合| 天天爽免费视频| 五月丁香成人| 99久久99视频只有精品| 91avse| 久久超视频| se婷97| 色婷丁香91| 99热免费| av国产精品| 五月天激情亚洲| 热久国产| 久久国产色| 日韩欧美四五区| 亚洲五月天色| www.99视频| 欧美日韩国产一区| 98永久精品| 97偷拍在线视频| 五月丁香 狠狠爱| 中文字幕成人网站| 国产偷人爽久久久久久老妇APP| 五月天婷婷综合网| 激情丁香五月| 丁香六月婷婷| 激情五月天综合网| 六月激情综合| 婷婷五月婷婷| 超碰成人免费| 啪啪啪综合网| 成人做爰A片免费看视频| 激情综合网五月婷婷| 色色色色五月| 99无码视频| 69久久99精品久久久久婷婷| 伊人超碰| 丁香色婷婷| 久久久久久人妻| 激情五月天色色网| 九九视频在线观看视频6 | 亚洲精品99| 欧美大片免费播放器| 综合网激情| 五月婷婷综合久久| 婷婷丁香花五月天| Av大香蕉| 色五月激情综合网| 亚洲亚洲人成综合网络| 九月婷婷在线视频| 婷婷五月天大香蕉在线视频观看| 五月丁香久久色| 人妻视频在线| www.zbzhongsen.com| 欧韩性爱| 丁香婷婷免费| 五月丁香激情深爱婷婷| 五月天开心婷婷激情网站| 五月丁香六月婷| 久久99婷婷| 日本婷婷五月天| 全部老头和老太XXXXX| 久久色六月| 色综合色综合色综合| 五月婷婷六月丁香首页| 久久伊人五月天| 久久这有这里精品| 久色五月| 4399亚洲视频| 天天插天天插| 丁香婷婷激情四射五月| 色婷婷a| 人妻久久久久久久久妻久久久久久久久| 开心五激情网| 99久热这里只有精品| aa久久| 午夜性做爰电影| 日韩一区二区A片免费观看| www.97视频| 99热日本精品| 三级三久久线久久99久目本WW| 久久亚洲婷婷综合色五月| 久久婷婷丁香六月天| 婷香五月激情视频| 色香欲综合| 久久精品国产一区二区三区四区 | 九热视频这里只有精品| 五月丁香六月婷婷成人电影| 成人精品一区二区三区四区五区 | 99自拍网| 欧美日本免费一道免费视频 | 久久这里99| 婷婷丁香五月综合| 婷婷五月天成人| 九月色婷婷综合亚洲| 亚洲成人AV在线观看| 97精品综合| 激情九九这里只有精品| 99精品热视频| 天天激情站| 五月婷婷偷拍| 五月婷婷免费在线观看| 久久久久亚洲AV无码网影音先锋| 五月综合激情婷婷六月色窝| 超碰国产AV| 99热99热在线观看| 十一月婷婷激情四射| 性爱综合网| 五月丁香五月丁香五月丁香五月丁香91| 婷婷99中文字幕| 色婷婷丁香AV综合| 人人爱人人草| 色综合久| 婷婷五月天渟渟| 五月天婷婷色| 色五月婷婷亚洲最大| 另类小说五月天| 99久久精品国产色欲| 97婷婷丁香五月天激情图片| 开心五月综合激情网| 思思久久久婷婷| 婷婷中文在线| 播四月婷婷六月丁香| 九九久久99| 91九色小视频| 九九热经典视频在线观看| 97五月天| 久久九九@| 亚洲激情97五月天| 国产肥白大熟妇BBBB视频| 六月丁香中文字幕| 丁香月六月| 最近免费中文字幕大全高清大全1 免费看欧美成人A片无码 | 精品国婬伦V无码久久久| 成人天天爽| www久久艹| 久在线综合69| 五月色婷婷综合丁香精品无遮挡| 久草天堂| 91九色视频在线观看| 这里只有精品偷拍| 日本在线va| 国产毛片精品一区二区色欲黄A片| 丁香六月婷婷综合激情欧美| 五月天成人网在线观看| 九月丁香久久网| 99精品视频在线6| 超碰91在线| 久99久视频免费观看| 久久思思精品| 操逼五月婷婷| 日日夜夜青青草| 五月天国产| 五月丁香久久网| 人人干女人| 日本在线wwww| 天天摸天天日天天舔| 日日影院 | 午夜免费试看| 久久92| 4399伦理午夜| 五月天激情图片| 97操碰日本女人| 日日操,夜夜爽| 99热久久这里只有精品| 五月婷婷深深爱爱| 五月开心久久| 青青热视频| 在线天堂9| 激情婷婷网| 99综合色| 2018夜夜草| 青青草视频福利| 美国少妇性做爰| 午夜九九电影| 人妻丰满精品一区二区A片| 人妻内射麻豆视频| 狠狠狠狠狠| 国产夫妻操逼内射视频| 丁香五月激情五月| 开心五月激情| 婷婷综合久久| 久久婷婷六月综合资源| 日本欧美成人片AAAA| 一本道综合网| 热热色色五月天婷婷| A色色| www,99热在线观看| 色五月丁香伊人| 日本在线观看aaa 99| 国产精品色色色色| 精品日本视频444| 五月花婷婷最新| 97亚洲视频在线| 开心五月激情五月丁香五月婷婷| 99久久综合狠狠综合久久| 色婷婷啪啪| 婷婷五月图片小说视频| 996热re视频在线观看视频| m色激情网| 六月婷婷色色网| 国色天香伊人狠狠色| 99热8在线| 激情五月六月婷婷| 久久综合婷婷五月| www.色五月| 开心深爱五月天| 久久久天堂国产精品女人| 丁香五月婷婷在线视频| 月丁香久久久| 99精品视频偷拍| 丁香五月天无码AV| 国产精品美女久久久久AV超清| www.六月丁香看AV| 综合激情sV| 九九热黄色| 五月婷婷久久开心网| 天堂美国久久| 99人妻碰碰碰久久久久视| 五月丁香婷婷色色| 欧美精品999| 97碰免费视频在线| 强壮公让我夜夜高潮A片视频| 丁香五月婷婷在线视频| 99啪啪网| 伊人啪啪网| 色播五月丁香综合| 99年操人人爽| 饮料下药迷倒漂亮女同事强干| 久久婷婷综合网| 专区无日本视频高清8| 亚洲情a| 五月丁香综合在线| 狠狠综合网| 综合一本道| 色一情一乱一乱一区91| 亚洲乱码日产精品BD| 狠狠草狠狠草| 婷婷月五天在线在线看| 九月丁香久久网| 亚洲第一第二网站| 97久操视频| 91se在线观看| 欧美激情五月综合| www.久操| 丁香激情网| 日日夜夜久| 大香蕉久| 99九九热播在线免费视频| 色综合九九| 久久99这里只有精品视频| 吊色AV男人的天堂| 国产亚洲精品久久久久久郑州| 五月开心色| 激情丁香婷婷六月天| 五月天婷婷Av| 五月婷在线观看| 亚洲另类噜噜| 六月激情婷婷色| 在线中文字幕免费视频| 色情婷婷| 亚洲性爱99在线| 色婷婷五月综合在线| 婷婷丁香中文字幕| 日本久久99| 这里只有精品2| 激情五月天婷婷免费观看| 综合爱久久| 人人干av| 狠狠色97| 日本va欧美va欧美| 丁香五月激情宗合| 99内射视频| 人妻熟人中文字幕一区二区 | 六月婷婷色| 色婷婷五月天激情在线观看| 九九热只有这里是精品| 激情综合色图| 高清免费在线视频| 日本乱子人伦在线视频| 免费婷婷| 亚洲久热无码| www.色婷婷。com| 国产成人av在线播放| 国产99久9在线+|+传媒| WWW.桔色成人.COM| 婷婷操逼| 成人丁香五月天Av| 日本激情五月天‘| 五月视频日本免费观看| 九九精品99| 丁香五月激情欧美| 欧美日韩99| 五月色丁香| 色婷婷久久视屏| 欧美成人va| 久色大| 丁香五月网| 99国产小视频2013| 美欧日韩国产成人在战| 久久女人九九| httpwww色com日本| 国产亚洲精品久久久久苍井松| 激情综合五月| 97人人操| 久色大| 五月丁香六月婷婷操操操| 天天干夜夜欢| AV五月丁香| 天天综合情| 97ai婷婷| 成人免费视频一区| 色色97丁香婷婷五月天| 字幕网AV中文字幕| 大地资源色婷婷视频在线 | 九热在线这里有精品6| 久久久com| 91人人网| 久久久性爱视频| 超碰国产av| 色综合久久综合| 青青色com久久| 日本精品人妻无码77777| 狠狠操狠狠爱| 五月天色婷婷激情| 婷婷五月天激情基地| 日日夜夜小色哥| 婷婷五月偷拍| 99精品久久| 开心婷婷中文字慕| 婷婷五月激情欧美| 影音先锋四区| 亚洲99综合| 一逼色综合| 五月天丁香网| 开心五月婷婷婷美女| 在线观看日韩12345区| 色五月丁香com| 夜夜穞天天穞狠狠穞AV美女按摩| 国产美女无遮挡裸体毛片A片| 午夜婷婷| 无码人妻AV久久久一区二区三区| 国产看真人毛片爱做A片| 国产看真人毛片爱做A片| 亚洲第一成人无码A片| 99超超碰| 91黄色五月天视频| 日本成人内射| 五月婷婷黄色毛片| 九九色插| 黄色av网站在线免费播放| 亚洲精品九九| 亚洲国产另类av| 国产黄色一级片| 七七九色| 五月婷婷综合激情网| 综合激情五月四射婷婷| 亚洲性爱99| 激情久久五月网| 这里只有精品视频一区| 婷婷播5月| 色婷婷精品视频| 99热99久久| 亚洲免费看片| 久久九九99| 丁香婷婷老熟女综合网| 五他月天啪啪啪| www.sebowuyue| 久久色情| 日本狠狠爽| 丁香婷婷六月在线资源观看| 五月婷婷五月天在线| 九九九九综合| 天天射射夜| 第四色五月激情网| 超碰renrenai| AV性爱在线| AV在线观看网站| 久久人妻视频| 亚洲午夜国产成人电影VA国产欧…| 九九热在线视频观看免费10| 久久婷婷激情| 中文不卡一二三区| 国产无套精品一区二区| 欧日韩成人| 97人人做| 国产五月视频| 91 九色 入口| 亚洲一个色| 狠狠色狠狠鲁| 亚洲激情五月| 日日噜噜夜夜狠狠久久丁香六月| 国产毛片欧美毛片久久久| 色婷婷综合在线| 久色网| 激情综合丁| 9月色婷婷| 专区无日本视频高清8| txt五月激情四射网综合俺也来了 五月天婷婷丁香人人操91 | 国产毛片精品一区二区色欲黄A片| 另类婷婷五月天啪帕帕| 六月婷久久| 四虎婷婷五月天| 俺去也五月天| 色色色色综合网| 六六久久黄色| 无码啪啪| 天天干天天爽天天爽| 99在线免费视频| 农村熟妇高潮精品A片| 欧美伊人9| 色久在| 丁香五月中文字幕色播| 亚洲精品又粗又大又爽A片| 99热99在线精品| www激情| 亚洲乱码成人| 色综合久久44| 99综合色色色| 丁香六月激情综合| 日本五月天一页| 天天操天天操天天操天天操天天操| 色亭亭九月| 99热在线观看免费中文| 热思思| 婷婷在线免费| 亚洲无AV在线中文字幕| 色情五月婷| 狠狠插狠狠| 人人爱国产| ...婷婷五月综合不卡,国产在线手机| 五月综合视频在线| 狠狠操天天干| 爱99干99| 大香蕉久久伊人婷婷五月丁香| 亚洲VA在线| 五月丁香花视频| 久久99人人| 色五月丁香六月资源站| 99热这里只有精品免费| 免费无码毛片一区二区A片 | 丁香五月情| 激情六月婷婷啪啪| 亚洲欧洲99| 在线视频99| 久久国产成人9999久久久久| 婷婷免费精品视频| 超碰二区| 婷婷丁香激情五月天色色色| 久久er+| 亚洲天堂久久| 综合五月丁香97| 五月丁香黄色| 色五月婷婷五月天| 亚洲成人免费电影| 热思思| 桃色成人网| 97资源碰碰| 99er久久| 精品香蕉99久久久久网站 | 天天日日夜夜爽。| 涩五月婷婷| 欧美色久| 人妻久久久久久| 久久加勤综合| 3p日韩网站视频| 激情五月综合| 99在线播放视频| 99综合| 超碰成人黄色网| 色欲色天天香综合| 日本精品99| 婷婷丁香综合| 五月婷婷 激情五月| 97caop| 三级成人网站| 婷色五月| 99re久热只有精品6在线直播| 婷婷伊人綜合中文字幕小说| 99视频35精品视频在线观看| 99热免费| 久久精品91视频| 色婷久久| 丁香五月婷婷天堂大香蕉| 色狠狠综合入口| 激情文学 综合 九月| 五月香六月婷| 亚洲精品第一国产综合亚AV | 99re6热在线精品视频播放速度| 丁香五月综合激情啪啪| 人妖色AV色综合| 第一区久久网站| AV在线不卡播放| 日韩中文字幕| 五月丁香六月香香蕉| 婷婷99中文字幕| 婷婷欧美| 婷婷不卡基地| 草做免费在线观看| 丁香婷婷激情网站| 五月婷婷开心六月激情小说| 久久久GOGO无码啪啪艺术| 五月婷婷在线短视频| 99热免费观看| 99re99热| 欧洲色色| 久久狠色噜噜狠狠狠狠97| 三男玩一女三A片| 婷婷激情鹿城五月天| 又大又粗九一在线| 丁香婷婷五月综合影院| 亚洲黄色操逼| 五月色丁香视频精品| 99在线精品免费视频| 思思re视频在线| 思思久久99热只有频精品66| 天天综合亚洲综合| 亚洲AV成人无码精品| ji'qi'luan'ren'lun| 婷婷综合九月| 日本久久性| 超碰chaompinm| 九九热在线观看视频| 丁香六月婷婷开心| 欧美成人精品A片免费一区99| sewuyuejiqingwang| 精品热九九| 天天爱天天做天天| 4399亚洲视频| 婷婷色九月| 玖玖伦理电影| 99色爱| 久久精热| 综合久久综合久久| 日本狠狠干| 天天干夜夜欢| 啪啪视频99| 婷婷丁香色五月| 99玖玖在线视频| 婷婷五月成人| 婷婷色激情网| 亚洲三级无码| 色噜噜狠噜噜视频| 超碰在线人妻| 丰满人妻一区二区三区| 开心五月婷婷激情网| 激情五月天情色| 六月婷婷激情| 五月婷婷色播网| 综合九色| 天天综合 99久久婷婷| 蜜臀av无码久久久久久久久| 91呦呦呦| 欧美色久| 五月丁六月香av| 97超碰在线观看免费| 丁香激情网| 久久五月天婷婷视频| 六月婷综合| 五月婷婷香蕉| 热99只有里视频| 99色在线观看视频| 天天舔天天爽| 99热在线观看免费| 久久五月天视频| 无码AV久久久久久久久| 人人爽欧美婷婷久久久五月丁香| 天天肏天天肏| www,天天干| 婷婷五月综合啪| 亚韩在线视频| 亚洲深喉aV| 婷婷午夜综合| 五月婷成人网| 色婷婷AⅤ| 天天插天天插| 九九热99精品| 婷婷情色五月天| 日日干四虎| 午夜爱爱网站| 五月婷色丁香| 日韩成人AV在线播放| 草草女人亚洲| 五月丁香综合激情| 婷婷六月色播| 婷婷永久在线| 日韩三十六页| 99热综合| 91人人爽久久涩噜噜噜| 深爱婷婷基地| 在线观看日韩12345区| 亚洲精品99| 色五月丁香婷婷| ...婷婷国产成人亚洲日韩| 久久在线92| 天天爽天天爽| A久久| 综合色五月天| 色婷婷瘦婷婷日韩| 日韩精品无码一区二区| 久久激情网| 丁香五月激情五月| 天天色天天干天天插| 色婷天天| 丁香视频| av婷婷丁香| 日本天天色| 99久久久久| 天天综合五月天| 丁香六月婷婷综合在线| 色情五月丁香婷婷网| 亚洲熟女色| 亚洲无码www| 日本欧美成人片AAAA| 亚洲精品午夜国产va久久成人| 色欧美影院| 99A片| 久久精彩视频99|