欧美成人午夜精品久久久,国产?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
返回資訊列表
www.狠狠狠.com| 影音先锋91| 五月婷婷综合色啪首页| 激情综合五月| 国产精品久久..4399| 天天做天天要天天爽| 久久精品99久久久久久| 久久A V无码视频| 日本高清久| 精品久9| 91综合国免费久入| 大香蕉中文| 欧美丁香六月激情视频| 婷婷在线五月天观看| 五月丁香久久呀| 国产黄色在线| 九九日伊人| 婷婷六月激情| www.婷婷五月天.com| 五月激情偷拍| 亚洲色无码| www.狠狠狠狠| 色久婷婷网| 久久hd| 91人妻人人操| 日日操夜夜操不卡| 色婷婷精| 婷婷综合在线视频| 国产AV不卡福利| 婷婷无五月无码视频| 人妻AV在线| 97精品自拍| 99视频只有这里精品| 亚洲综合网激情五月天| 激情婷婷五月黑人| 色五月婷婷内射| 国产片色| 欧美激情综合五月色丁香| 狠狠干激情五月| 色欲婷婷夜夜| 色婷婷丁香五月丁香| 丁香九月综合| 六月五月久久丁香| 亚洲色色色色| 欧美va在线| 婷婷综合伊人丁香| 丁香五月综合在线观看| 99热官网| 亚洲美女高潮久久久久久69| 亚洲五月花| 五月天色社区| 欧美内射AAAAAAXXXXX| 九月婷婷综合| 天天色中文字幕女优AV| 五月丁香 狠狠爱| 色逼综合网| 国产AV影片| 激情五月婷婷| 免费啪啪啪网站| 成年视频免费观看| 色丁香五月婷婷| 国产成人+综合亚洲+天堂| 久久92| 色哟哟精品| 在线中文亚洲| 天天爽天天日人人爱| 亚洲欧洲色色| 伊人久久五月天综合| 五月天色裸体视频| 五月丁香六月激情综合| 亚洲超碰在线| 久久九九囯产| 99热在线观看| 亚洲麻豆乱码国产2028| 99热碰碰| 人人舔人人色人人高潮| 国语精品探花| 亚洲综合五月天婷婷丁香| 色综合久久888| 天天操人人干| 九九综合网| 日本色色网站| 天天色天天干天天插| 五月开心婷婷| 高清不卡一区| 五月婷婷激情在线| 97色色色色| 草婷婷在线| 亚洲va欧洲va国产va不卡| 五月激情婷婷播播开心| 少妇性BBB搡BBB爽爽爽视頻| 亚洲无码激情| 婷婷香草网| 婷婷丁香精品视频在线观看| 色色婷婷五月天| 丁香亭亭久久| 66成人网| 青青草青青草五月天| 婷婷五月天天激情| 欧美99热| 97色婷| 国产在线网| 婷婷综合偷拍| 插插网爽妇五月丁香| 九九热视| 国产亚洲成AV人片在线观黄桃| 97碰精品| 婷婷五六日| 五月丁香婷婷六月| 久久大香蕉丁香| 伊人色综合久久久| 婷婷五月天综合色| 粉嫩AV久久一区二区三区| 99视频日韩| 色999五月色| 五月婷婷开心综合| 91精品久久久久久综合五月天| 久久久久亚洲AV无码网影音先锋| 超碰2021| 森林影视大全,最好看的2019年视频 | 国产激情AV| 能看的AV网站| 久久丁香| 超碰超碰在线| 精品99在线| 三级毛片视频| 日日干综合| 色噜噜狠狠色综合成人99| 国产AV一区二区三区日韩| 超级碰碰91| 99热777| 九九热99热| 久久99精品久| 国产另类综合| 67194中文在线| 五月丁香怕怕综合| 五月激情小说| 色五月xxx| 六月婷婷八月丁香| 大伊香蕉玖玖爱| 五月丁香六月合| 99久久综合网| 精品视频这里只有精品| 99国产在线| 性色天| 五月丁香啪啪网| 97人人操人人| 亚洲黄色影视| 五月丁香六月婷婷精品| 五月天国产| 日本97在线视频| 玖玖热视频| 成人五月天综合网| 99视频精品全部免费观看| www.五月天| 人妻AV在线观看| 六月丁香五月天| 五月婷狠狠| 六月丁香婷婷开心综合基地| 超碰人人摸人人操| 五月婷婷婷婷婷| 夜夜操狠狠操| 能看的AV网站| 99视频极品在线香蕉| 日日激情网| 午夜性做爰电影| 婷婷五月天播| 校花娇喘呻吟校长陈若雪视频 | 丁香五月人妻| 影音先锋一区| 综合色99| 久久性爰视频这里只有精品| 亭亭色色五月天| 色五月涩涩婷婷| 久久香视频| 婷婷丁香18| 五月婷婷六月丁香综合在线| 99爱在线| 天天日天天插| 99色看| 亚洲愉拍99热成人精品| 草做免费在线观看| 日韩无码人妻一区二区| 91操熟女| ji'qing'luan'ren'lun| 97婷婷五月丁香| 深爱五月最新网址| 久久九九玖玖| 人妻丰满精品一区二区A片| WWW.夜夜操.com| 丰满老熟妇BBBBB搡BBB| 99视频这里只有久久精品 | 4438亚洲欧美| 九九热最新视频| 大香蕉九九操| 99re这里只有| 米奇影视五月天| 天天天干夜夜夜操| 丁香激情久久| j五月香在线| 天天天天天日| 欧亚色色| 黄色99热| 婷婷午夜| 中文AV网站| 97九色视频| 成人片在线播放| 久久久久久xxxxx| 欧美 日韩 人妻 高清 中文| www.婷婷五月天| 亚洲AV人人操| 亚洲综合五月天婷婷| 欧美丁香五月夫妻天| 久久综合性| 中字幕视频在线永久在线观看免费 | 日本波多野结衣视频| 美女五月狠狠| 婷久看人爽| 六月丁香啪| 激情五月天色色网| 久久丁香五月婷婷| 九九色影视| 97色吧| 九九热在线视频观看| 日本99久久| 国产精品香蕉| 丁香六月婷婷开心| 99干视频| 色婷婷影视99| 亚洲精品又粗又大又爽A片| 婷婷激情丁香六月| 色色色777| 果冻传媒A片一二三区| 久超超碰| 五月婷av| 很很干在线视频| 香蕉大综综综合久久| 91久操| 九九干视频| 五月婷庭丁香在线| 久去色色| 色五月激情| 黄网在线免费观| 操操啪| 天天操天爱综合| 亚洲激情在线| 大香蕉九九热| 伊人9草在线观看| 成人无码精品1区2区3区免费看| 激情影院丁香五月| 五月婷婷狠狠干| 亚洲精品99| 黄色AAAAAAA| 国产精品人成A片一区二区| 五月久久婷婷成人网| 激情黄色五月天| 97婷婷狠狠| 婷婷五月综合免费在线| 色综合色色色| 97色色在线视频| 激情六月丁香综合| 国产韩日亚洲美州欧亚综合在线| 欧美精产国品一二三区| 亚洲无码yw| 99碰碰碰| 天堂在线婷婷| 国产免费av网站| 国产毛片精品一区二区色欲黄A片| 婷婷五月情| 天天日天天草| 激情五月色婷婷| 涩涩涩.com| 五月天播播综合| 天天爽人人综合免费7799| 五月天大香蕉视频| 久久九九精彩| 91chinese 在线| 五月精品99综合| 日韩二区搞逼插逼毛片| 激情色五月天| 久热re视频在线观看网站| 全部老头和老太XXXXX| 九九色综合九九色| 婷婷伊人网| 日韩操人| 日本色色网| 色丁香五月婷婷| 亚洲色频| 天天弄天天操| 91se精品国产| 亚洲123区高清入口| 日日夜夜九九| 91九色国产在线| 色噜噜狠狠色综合日日| 久热AA| 午夜九九九九九九九九九九九九九| 婷婷五月天色播| 亚洲成人在线五月天| 天天日天天做天天操| 九九热思思热| 美女丁香五婷婷| 五月婷婷激情网| 丁香五月先锋| 久久ww| 丁香六月婷婷综合| www,99热在线观看| 91在线日本| 人妻激情视频| 综合色久| 五月婷在线视频免费播放| www.狠狠干com| 五月婷婷啪啪啪啪| 欧美三级欧美一级| 99色在线| 丁香五月激情啪啪综合| 九九色色色| 婷婷在线精品| 中文字幕日韩无码制服诱或| www,99热| 91狠狠综合久久久久久| 亚洲网站观看视频| www.sebowuyue| 99爱爱| 蜜乳.comcom| 综合久久五| 99色免费在线观看| 国产精品久久99| 六月色狠狠色| 极品另类| 五月日韩中文字幕| 九九色播五月丁香| 激情五月天之五月婷婷| 天天综合色丁香| 婷婷色五月天在线观看| 三日本无码| 99热在线资源| 五月丁香九九九综合| 天天操天天操天天操天天操天天操天天操天天操天天操天天操 | 六月欧美综合色情| 欧美激情综合五月色丁香| 超碰人人超碰| 国产麻豆视频| 久久久www| 日本精品。999| 色色射| 俺去也五月| 男人大jjc女人免费视频| 亚洲有码在线视频| 欧美丁香六月激情视频| 97色婷婷成人综合在线观看| 99色综合久久| 久久欧洲久久| 激情啪啪五月| 91嫩草国产线观看亚洲一区二区| 人人操AV| 影音先锋一区| 五月开心激情| 久色精品| 狠狠色噜噜狠狠色噜噜噜999| 亚洲激情97五月天| 亚洲亚洲人成综合网络| 五月婷婷综合久久| www.五月天社区| AV操操操| 九九综合网色全集| 色婷婷五月天视频在线| 专区无日本视频高清8| 天天射天天干天插色综合| 久久视频九九视频| 久热99| 天天肏高清在线| 91操操操| 久久久久久人妻| www.91.com黄| 五月综合激情网| 亚洲精品又粗又大又爽A片| 99狠狠| www夜夜操wwwcon| 网站免费一站二站| 97干97色| 久久多色| yellow视频在线观看91| 丁香五月婷婷六月丁香| 九97免费视频| 色久综合天天做视频| 九九热最新视频| 五月丁香激情婷婷| 5月激情天| 国产精品久久久海的味道| 高潮毛片又色又爽免费| 天天色伊人| 婷婷五月六月| 色色操| 狠狠99| 99热 在线播放| 色五月激情基地| 激情五月天色色网| www.婷婷网| 91九色精品女同系列| 丁乡久久| 99啪| 99re在线观看| 天天插天天爽| 丁香激惜男女| 99精品偷自拍| 九九爱看亚洲| 婷婷情色五月| 久久性爱视频网站| www.com亚洲网站在线免费| 六月综合在线| 色婷六月| 九色婷婷| 老司机午夜福利视频金瓶梅| 亚洲中文字幕在线观看| 欧美色六月婷婷| 无码99| 99久热这里有精品| 色五月亚洲| 天天射影视综合网| 欧美高潮9| 天天做天天摸| AV九九| 久久久人妻不卡| 强伦轩人妻一区二区电影| 婷婷综合久久| 六月丁香婷| 狠狠另类视频| 91嫩草国产线观看亚洲一区二区| 日韩色五月| 自拍视频在线观看9| 五月天亚洲色| 超碰大香蕉网| 国产做爰视频免费播放| 国产精品激情五月天色婷婷| 九九色天堂| 色哟哟www| 五月综合激情| 大地9中文在线观看免费高清 | 艾小青av| 综合激情肏逼网| 久久伊人婷婷| 99精彩视频在线观看| 久久久精品免费啪啪国| 五月丁香婷婷视频| 人人干天天舔| 色综合女人99| 色五月天丁香| 亚洲精品色色色| 色综合av超碰| 亚洲综合五月天| yazhouzonghesese| 亚洲婷婷五月| 亚洲情综合五月天| 这里只有精品久久| 欧美日韩大黄| 久久婷婷综合色丁香| 97操视频| 日日操日日爽| 成人短视频在线| 丰满老熟妇BBBBB搡BBB| 五月婷婷在线观看黄| 欧美成性色| 日日操夜夜操中国无码| 激情小说在线视频| 婷婷久久草| 一区色色色色网| 久久婷婷丁香花综合网| 自拍偷窥99热| 激情综合色五月丁香六月亚洲| 国产无人区大片| 97福利视频| 青草少妇激情| 色婷五月天亚洲| 色播五月综合网| 国产成人精品一区二三区熟女在线| 777色色色| 五月婷婷六月丁香免费| 99热久97| 久9久视频精品| 人妻AV在线| 久久思思精品| 久久久久综合激动五月天| 啪啪色区| 免费日本aⅴ中文字幕| 五月丁香六月婷| www.99成人视频| 熟女激情网| 六月激情婷婷综合| 天天久久婷婷| 成人无码精品1区2区3区免费看 | 久久九九99| 欧美在线视频免费播放| 色五月丁香五月婷婷五月成人网| 99色区| 亚洲AV无码成人精品区电影网| 婷婷色综合| 五月综合激情| 99热66| 99热精品9| 99视频内射三四| 日本黄色精品| 97偷拍对白视频| 五月综合久久| 亚洲精品99| 丁香 久久| 夜丁香综合| 五月天色五月天| 丁香九月婷婷| 婷婷五月天激情四射| 色色日本欧美| 五月丁香婷婷啪啪综合| 日本三级片片| 久久色午夜在线导航| 久99婷婷色综合| 九九无码| 少妇AB又爽又紧无码网站| 99操视频| 久久久网站| 婷婷刺激综合| 超碰二区| 久99在线视频| 久久9精品| 久久婷婷啪啪视频| 超碰成人电影| 激情丁香婷婷| 一起草av| 天天插天天日| 欧美性做爰大片免费看办公室 | 五月天综合色| 五月婷婷色播| 8区视频在线| 亚洲色婷婷| 九九热精品视频| 激情五月天婷婷五月天| 干一干xxxx| 九九99热久久精品66中文字幕| 婷婷五月激情图片| 大香蕉中文| 五月丁香六月激情综合| 人妻熟妇国产精品| 人人草人人舔| 激情又色又爽又黄的A片| 五月天综合| 97精品人人A片免费看| 国产精品国产成人国产三级| 99在线精品免费视频| 成人午夜天| 婷婷视频在线碰| 九月色婷婷婷| 成人网在线视频| 91丁香五月| 久久五月综合| 婷婷五月天xxx| 思思w99| 五月五婷婷| 99国产精品久久久久久久久久久| 久碰视频| 国产一级视频a| 五月天婷婷色综合| 天堂久久婷婷| 丁香久久AV| 五月婷婷五月天亚洲无码| 婷婷久久亚洲| 五月丁香综合啪啪| 91久久久久久久久久18| www.com.色色| Xx色综合| 思思 热 99| 99热天堂| 99热这里有精品| 色综合中文综合网| 一区二区成人电影| 米奇影视资源777狠狠色婷婷五月天激情网| 人人摸人人干人人做| 国产精品爽爽久久久久久| www.久热| 久久资源综合| 婷婷五月天中文字幕.| 亚洲AAA| 另类视频五月天| 可以直接看的av| 五月婷婷丁香91| 久久视频婷婷| 黄色99网| 五月天啪啪视频| 性按摩玩人妻HD中文字幕| 99丁香五月婷婷在线| 四色综合网| 日本操逼九九九九58日本操逼| 久久久久亚洲AV成人无码电影| 国产精品VIDEOSSEX久久发布| 色色色色色日韩午夜激情 | 五月天播播综合| 天天操比比| 99色婷婷| 九九人人精品| 亚洲狠狠操| 婷婷91| 91碰免费视频| 国产精品久久久99视频| 色婷婷五月天激情在线观看| 色婷婷成人做爰A片免费看网站| 97碰操| 天天AV导航网| 玖玖婷婷五月| 1级欧美日韩| 婷婷五月天AV网| 99精品大片| 日日夜夜干| 色综合大香蕉| 五月婷婷中文字幕| 综合色在线| 婷婷色婷婷亚洲成人| 六月婷婷在线| www.99热国产| 六月婷婷五月丁香首页| 色综合久久综合中文综合网| 五月丁香婷婷色播无码| 五月青青草综合| 天天看A片| 久久天堂精品| 色情综合网| 亚洲精品又粗又大又爽A片| 超碰免费大香蕉| 色婷婷丁香香香蕉视频| 秋霞AV吧| 思思久久96热在精品国产,| 色色激情五月天| 黄色一级影片| 青青草成人网| 五月色情婷婷| 99色免费视频| av在线婷婷| 99er免费在线观看| www久| 亚洲成人网在线观看| 婷婷五月成人| 伊人大香蕉在线视频| 色丁香六月| 久久99最新地址| 激情五月天开心网丁香无码| 天天色粽合合合合合合合| 色99在线视频| 国产在线中文字幕| 久久作爱| 99九九精品| 欧日韩成人| 青青草轻轻操| 久热成人| 天天狠天天叉| 亚洲精品乱码久久久久久按摩观| 亚州色婷婷| 色综合综合色| 狠狠干在线| 中文字幕在线观看视频www| 亚洲愉拍99热成人精品| 久9久9热久热| 国产无套精品一区二区| 色婷婷五月天激情| 六月丁香五月婷婷| 狠狠五月丁香色婷| 五月婷婷香蕉| 99热综合| 黃色三级三级三级三级 qixing300.shrkbk.com www.jinbozs.com tianmiaosw.com | 中文成人在线| 呦呦视频无码播放| 五月丁香激情综合网官网| 五月涩涩网| 996黄色片| av色色国产| 六月婷婷色色色| 久草A片| 色色色激情| 欧美在线视频99| 五月天激情中文字幕| 五月伊人91| 婷婷激情社区| 情色婷婷五月天| 激情五月五月婷婷| 五月丁香五月激情综合色综合| 亚洲三级无码| 激情五月天com| 五月婷婷丁香啪啪| 思思久久99| 狠色狠色狠色狠色狠色网| 91嫩草国产线观看亚洲一区二区| 天天爽天天爽视频| 51成人| 五月激情六月| 久久婷婷五月综合色区| 久久久噜噜噜久久人妻| 综合色图区| 99精品偷自拍| 五月婷婷中文字幕AV| 亚洲AV免费在线| 激情99| 色XX综合网| 91欧美日韩综合| 亚洲国产精品成人午夜| 婷婷色五月婷| 五月丁香婷婷激情在线视频| 91丨九色丨国产打屁股网站| 9 1超碰九色| 色青青视频| 中文字幕成| 欧美性爱五月天| 激情VA视频| 亚洲国产婷婷色五月| 国产露脸150部国语对白| 色色色色网站| 小视频aaa久久久| 亚洲成人无码免费| 99综合视频一体| 亚洲最大视频| 激情精品久久| 97超碰在线免费观看| 成人综合网站| 黄色三级日本| 天天色域综合网| 任你草| 激情五月天情色| 国产精品噜噜在线视频| 久久久婷丁香五月天激情综合| 做爰丰满少妇1313| √天堂资源在线人妻熟女| 久久五月天激情视频| 婷婷五月丁香花综合| 老妇六区| www.五月丁香| 天天人人人人人人人人人人人| 日韩抽插操逼| www.久久久久久久| 色婷婷另类| 男女啪啪做爰高潮无遮挡| 99综合自拍| 日日日影院| 婷婷五月丁香av网站| 《丁香激情综合久久伊人久久》影视在线观看 -高清预告手机免费播放 -三妹影院 | 天天做天天爽| 六月丁香久久| 丁香婷婷情色五月天| 五月激情开心婷婷| 66精品国产成人| 婷婷九色| 日本色超碰| 色噜噜狠狠色综无码久久合欧美| 亚洲综合在线视频| 色私五月婷婷| 噜噜色噜噜网| 五月天婷婷深深爱| 99国产小视频免费观看| 99综合视频| 久草a片| 日本玖玖在线| 色色色九九九五月婷婷| 99热| 国产成人综合网| 超碰激情网| 日日夜夜天天| 99热97| 99这里只有精品|v| 国产婷婷五月天| 国产在线另类五月婷婷| 九月婷婷综合八月丁香在线观看| 538午夜激情| 亚洲成人综合在线| 先锋五月婷婷丁香草草| 日本在线视频播放91| 色婷婷综合电影| 婷婷五月色花丁香社区| 丁J香六月首页| 狠狠色婷| 99久久婷婷国产综合亚洲| 9九九久久精品无码专区| 国产精品美女久久久久AV超清| 99在线精品观看99| 六月天婷婷| 激情开心五月天| 五月激情影院| 黄桃AV无码免费一区二区三区| 狠狠色婷婷777| 激情深爱五月天| 丁香五月色| 日日干夜夜干| 少妇熟女视频一区二区三区| 丰满少妇猛烈A片免费看观看| 日本精品久久久久中文字幕| 香蕉AV福利精品导航| 国产精产国品一二三在观看| 日日影院 | 激情综合丁香六| 精品久9| 久久婷婷桃花五月天| 激情五月狠狠喔| 精品九九网| 九色七七| 五月开心婷婷极品激情| 月婷婷亚洲| 99热精品综合| 久久九九视频| 超碰人人91| 色区久久| 中国丰满熟女A片免费观| 久久97久久99久久综合欧美| 丁香五月玖玖| 久久久久久久久久久97| 激情综合婷婷| 久久久月丁香| 伊人五月成人| 超碰成人av| 丁香五月婷婷五月| 日比网免费国产| 热99一二三| 色五月婷婷av| 欧美激情xxxXX| 久久久五月四色| 97色女人在线| 婷婷六月色| 婷婷五月丁香成人网| 香焦网五月天| aaaaaa片| 99在线观看视频| VA色婷婷| 五月婷婷色在线| 九九精品热播| 六月丁香啪| 99热这里只有精品搜| 丁香六月色婷婷| 成 人片 黄 色 大 片| 91综合色噜噜| 玖玖国产视频一区| 五月婷婷六月基地| 久久久久激情| 日韩性爱AV| 久久最新色| 色的色综合| 激情综合激情综合| 可以看的av| 91婷婷五月丁香碰| 色色啊| 色丁香五月婷婷| 亚洲人人操| 无码九九九九| 久久婷婷六月综合资源| 天天天天干| 99国产精品白浆在线观看免费| 中文字幕天天干| 五月婷婷内射网| 日本天天色| 日本欧美成人片AAAA| 婷婷丁香五月色偷偷| 涩涩五| 97操视频| 97亚洲精品| 玖玖伦理电影| 五月天激情四射网站| 丁香综合日产精品久久| 伊人激情| 五月欧美丁香在线观看| 国产乱人偷精品人妻A片| 91超级碰在线视频| 丁香婷婷视频一区二区| 91碰碰| 五月综合丁香婷婷| 99爱视频在线播放| 免费视频WWW在线观看网站| 亚洲黄色精品| 5月婷婷激情在线| 午夜69成人做爰视频| 久9视频| 97色色网| 4399精品一区二区| 呦呦v线| 色无码| 91丨九色丨熟女丰满| 日日夜夜小色哥| 性做爰1一7伦| 伊人春天av| 爱久综合| 色天堂97| 五月天天天色| 五月天社区婷婷| 色五月涩涩婷婷蜜桃| 亚洲不卡| 久久婷视频| 免费观看的婷婷五月视频在线| 九九亚洲天堂| 五月激情另类| 久久婷婷精品| 777色婷婷爱五月| 六月丁香av| 日韩另类在线观看| 丁香婷婷激情六月五月开心| Av在线不卡一区| 天天操天爱综合| 在线成人va| 六月丁香婷婷开心综合基地| 少妇人妻偷人精品无码视频新浪| 天天 青草 制服丝袜 在线| 天天射综合网站| 狠狠爱激情网| 色欲av伊人久久大香线蕉影院| 九九综舍久久| 超碰色色综合| 五月丁香六月综合基地| 婷婷丁香激情综合色情| 中文字幕AV网址| 中文AV在线观看| 亚洲成人中心| 久久丁香五月| 色色激情网| 九九99久久| 婷婷成人网五月天| 97婷婷色| 五月婷婷就去色| 免费无码毛片一区二区A片| 婷婷色5月天在线。| 欧类av怡春院| 成人九九视频| 丁香五月97视频| 婷婷日欧美在线观看| 极品人妻VIDEOSSS人妻| 婷婷五月天AV激情| 极品少妇高潮啪啪AV无码| 另类丁香五月天区图| 五月天激情婷婷丁香| 国产亚洲精品AAAAAAA片| 先锋资源 996| 美女久久婷婷| 狠狠草狠狠草| 成人五月天丁香| 亚洲精品99| 婷婷免费精品视频| 丰满少妇猛烈A片免费看观看| 狠狠干五月丁香| 99在线视频观看| 激情五月婷在线精品| 99热在线网站| 日本啪啪天堂| 人妻性操逼中文字幕 国产| 色色色网站| 五月丁香六月合| 久久99日本精品视频免费观看| 五月天婷综合| 99热婷婷| 日韩艹比| 五月婷视屏在线观看| 日韩无码系列| 激情综合亚洲| www.狠狠狠.com| 丁香五月 无码| 久久六月天| 亚洲五月丁香综合网| 色五月天婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷 | 色很久综合| 99碰超| 亚洲五月天第一综合干| 狠狠婷婷色综合| 99热6精品| 久久99网站| 超PEN精品在线| 色婷狠狠| 丁香五月AV综合| 色婷婷av综合网| 五月婷婷六月丁香五月| 丁香丁香激情网| H亚洲| 色婷婷免费观看| 色综久久AV| 天堂呦 呦百度搜索-百度搜索| 97热精品| 五月婷婷干| 高清成人综合| 熟女少妇内射日韩亚洲| 亚洲色域网| 丁香激情四射| 色综合激情图区| 日日噜噜夜夜狠狠久久丁香六月| WWW.夜夜操.com| 99热欧美精品| 人妻人人操| 婷婷五月天免费视频| 激情av网| 99无码精品| 婷婷五月六| 综合激情五月丁香| 免费在线观看av网站| 这里只有精品免费视频| 播五月丁香六月| 丁香五月综合婷婷| 色欲五月丁香| 精品成人久久久久久久_一二三四视| 色宗合久久五月婷婷| 丁香五月色情av| 九九久久综合| 久久久久久久人妻| 国内自拍97在线| www.五月.com| 六月丁香婷婷六月激情综合| 色色五月丁香| 亚洲热久| 成人va在线播放| 夜夜躁爽日| 五月天四色房丁香| 九月丁香八月婷婷久久综合久97| 亚洲精品又粗又大又爽A片 | 操操人人| 人人爽欧美婷婷久久久五月丁香| 热久久思思热思思| 九九碰九九爱97超| av一区二区电影免费在线观看| 伊人婷婷五月天| 色射影院| 日日综合网| 久久96热| 免费精品66| 91色在线/日韩| 超碰爱爱爱| Av在线不卡一区| A片试看120分钟做受视频红杏| 99超级碰免费视频| 精品综合久久久久久五月天| 色婷婷久久久| 91婷婷伊人牛牛| 丁香五月天激情综合| 久久女人天堂| 玖玖午夜视频| 天天草比天天爽| 26uuu另类| 深爱五月亚洲| 色波激情五月天| 丁香五月婷婷激情小说| 五月婷婷六月天| 婷婷色吧| 91日韩美女被插视频| 亚洲图色五月天| 激情性爱五月天网页| 亚洲亚洲人成综合网络| 嫩草AV久久伊人妇女超级A| 色色婷婷五月天| 色婷婷丁香| 丁香婷婷性爱| 中文字幕AV网址| 伊人五月天| 色色色色热| 天堂草在线看www| 婷婷五月伦理网站| 五月婷婷丁香瑟瑟视频| 亚洲色色精品| 五月丁香六月花| 亚洲丁香五月| 日本AAAAAAAAAAAAAA片| 久久aaaa片一区二区| 激情5月天天天| 婷婷五月精品在线| www激情网| 婷婷五月天免费视频在线观看| 丁香久久五月天视频在线观看| 思思热在线精品视频网站| 99成人无码| 婷婷开心综合人妻小说网址| 亚州精品久久久久AV无码| 五月婷婷九| 亚洲第一视频 久久| 天天插AV丝袜中| 噜一噜在线| 五月天最新网| 思思热在线视频精品| 台湾无码A片一区二区| 七七九色| 久月婷婷| 久久九九99| 国产精品99久久久久久久女警| 日本天天操| 免费91久久精品| 色婷婷精品视频在线播放| 92久久久| 久久久久网站| 久久五月网| 天天综合情| 亚洲色小说在线综合| 五月天激情黄色小说在线观看| 色噜噜狠狠色综合AV兰草影视| 欧日韩AV| 婷婷五月丁香基| 狠狠色精品综合| 丁香六月综合激情| 婷婷五月丁香六月| 超碰日日操| 深爱激情六月天| 国产99久久久国产精品免费看| 欧美色色色色色色色色色色| 永久免费视频| 丰满人妻一区二区三区| 天天肏视奸| 五月天婷婷激情网| 久久婷五月天| 天天夜天天色天天| Va另类视频| 婷婷久久五月天| 久久精彩免费视频| a性生活久久无| 六月丁香成人| 99色综合网| 涩五月色婷婷| 丁香五月91| 91操人人操| 天天操中文字幕| 国产操碰| 综合久久丁香婷婷,五月婷婷六月丁香,开心激情综合网,六月丁香在线观看,婷婷丁 | 丁香五月激情啪啪| 婷婷午夜| XX色综合| 九九99男女视频在线观看| 亚洲另类婷婷五月丁香在线播放| 99这里只有精品在线| 99这里| 九九热视频在线观看| 99热在线观看| 综合超碰熟| 天天操夜夜啊 | 亚洲AV成人精品网站在线播放| 亚洲免费观看高清完整版AV线| 天天摸天天爽| 五月婷婷综合在线视频小说| 色一情一乱一乱一区91Av| 日本eVa一区=区视频| 丁香五月综合久久| 色情丁香五月婷婷精品| 五月天婷婷五月| 97人人射| 久久这里只有精品视频15| 一本久道综合99| 丁香婷婷伊人| 九色视频91| 五月天婷a在线| 婷婷五月综合激情| 思思热视频| 任你草| 看全色黄大色大片| 亚洲一区二区无码蜜乳av| 色丁香五月| 色色欧美色色色| a网站免费观看| 综合网五月| 久久99国产综合精品免费| 日韩AV在线免费观看| 婷婷激情五月综合在线视频| 色五月天堂| 国产九月婷婷| 激情丁香淫荡婷婷| 久久九九综合| 色五月丁香A欧美com | 天天干,天天舔| 婷婷五月天av| 丁香六月成人| 日本色婷婷五月天成人电影| 99啪99| 久久久亚洲成人无码A片| 国产阿姨日皮艹逼内射视频| 五月天丁香综合久久国产| 激情综合视频| 99丁香五月婷| 大香蕉婷婷| 五月婷婷成人| 夜夜躁狠狠 | 9 99免费视频| 伊人五月成人| 内射人妻视频国内| 九九热这里只有精品首页| 丁香婷婷激情| 久久婷婷色综合老司机| 九九爱看亚洲| 嫩BBB槡BBBB搡BBBB| 99热这里只有精品1025| 久久九九蜜| 丁香花社区av| 99热在线中文字幕| 6080av| 久久婷婷六月综合| 这里只有精品视频222| 色XX综合网| 一区二区乱视频码| 九九热手机在线视频| 丁香六月婷月91婷月| 五月婷丁香| 光棍影院日韩精品| 永久AⅤ1| 第四色首页| 精品A√| 婷婷九月亚洲| 99热成人| 99久久66综合| 久久视频婷婷| 婷婷五月丁香五月天| 91操在线视频| 免费视频WWW在线观看网站| 天天综合网~91| av中文在线| 26UUU欧美| 91碰碰碰| 色婷婷激情Av久久久| 丁香五月性| 人妻操逼视频| 色婷婷小说网| 婷婷久久婷婷色五月| 全网最新网黄大秀直播高清,主播国产录屏在线| 五月丁香六月婷婷不卡免费无码| 色色AV色色色东莞| 99色视频| 久久久大香蕉| 亭亭社区五月天| 久久人妻精品| 91啪啪啪啪| 激情婷婷五月天在线观看| 日韩精品999| 爱iii做iiii日日| www久久99com| 欧美视频五区| 色综色网| 99热国产这里只有| 人人综合久| 大香伊人婷婷影院| 欧美99热| 婷婷六月激情| 日韩无码乱轮| 人人看人人摸人人| 久久与婷婷| 一级七香蕉| 婷婷狠狠久久| 色丁香五月| 婷婷五月综合国产精品| 久久综合性| 日日操天天操| 9色天堂| 五月婷婷在线观看| 久久98| WWW久| 噜噜噜精品欧美成人在线观看| www.婷婷五月天| 成人视屏在线观看| www.婷婷,com| 51精品国内探花| 亚洲狠狠狠| 天天日天天插| 色色99色色| 久久综合人妻| 五月丁香婷婷中文| 五月天激情视频| 色五月婷婷伊人| 欧美丁香婷婷五月天| 国内熟女黄色系列| 色噜综| 成人AV在线中文版| 婷婷五月天影视| 狠狠穞A片一區二區三區| 大功率国产在线| 欧美日韩99| 久久伊人五月天| 色小说五月天| 怡红院91a√| 开心婷婷五月天激情网| 欧美超碰亚洲| 五月婷婷色| 99色五月| 综合激情五月丁香|