亚洲有码Av一区二区三区_国产高清啪啪免费视频_69色视频国产_国产成人人人爆出白浆_国产精品自在线拍国_一本久久伊人热热精品无码_午夜性刺激在线看免费带字幕_助力高品质欧美狂喷水_亚洲精品日韩无码_精品无码一区二区三区蜜臀_麻豆高清国产AV_熟妇人素无码中文字幕_亚洲a级片在线观看_国产欧美日韩三区_99国产成人高清在线观看

ARTICLE DETAIL

資訊詳情

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

STM32H7+W5500以太網(wǎng)方案:從硬件連接到TCP/UDP實(shí)戰(zhàn)

STM32H7+W5500以太網(wǎng)方案:從硬件連接到TCP/UDP實(shí)戰(zhàn) 簡介這是一份面向嵌入式開發(fā)者的STM32H7與W5500以太網(wǎng)驅(qū)動移植學(xué)習(xí)資源適用于工業(yè)控制、物聯(lián)網(wǎng)節(jié)點(diǎn)及需要穩(wěn)定網(wǎng)絡(luò)連接的實(shí)時通信場景。W5500集成以太網(wǎng)MAC/PHY與TCP/IP協(xié)議棧通過SPI總線與STM32H7對接資源圍繞驅(qū)動移植展開涵蓋SPI底層驅(qū)動、W5500初始化與網(wǎng)絡(luò)參數(shù)配置、Socket創(chuàng)建、數(shù)據(jù)收發(fā)函數(shù)、客戶端與服務(wù)器模式示例以及相關(guān)頭文件和工程配置??蓭椭斫饧拇嫫髯x寫、TCP三次握手與四次揮手、中斷響應(yīng)和DMA傳輸優(yōu)化等關(guān)鍵知識點(diǎn)。壓縮包為rar格式大小約21.4MB上游未提供文件清單具體文件數(shù)及類型分布暫不明確實(shí)際內(nèi)容以包內(nèi)代碼工程為準(zhǔn)。目前已有1406人學(xué)習(xí)適合承擔(dān)STM32H7網(wǎng)絡(luò)功能開發(fā)任務(wù)、希望快速上手W5500的中級嵌入式開發(fā)者。1. 為什么是 STM32H7 W5500從一塊網(wǎng)卡芯片聊起做嵌入式聯(lián)網(wǎng)的人遲早會遇到一個尷尬場景STM32H7 這顆芯片本身自帶 MAC但想要讓它穩(wěn)定上網(wǎng)還得外掛一顆 PHY、移植 TCP/IP 協(xié)議棧、調(diào)整內(nèi)存池稍微復(fù)雜一點(diǎn)的 UDP/TCP 收發(fā)就能把人折騰到半夜。前兩年做一個數(shù)據(jù)采集設(shè)備甲方要求把傳感器數(shù)據(jù)通過以太網(wǎng)上報我在 STM32H7 上跑了 LwIP第一版光內(nèi)存崩潰就調(diào)了三天。后來換成外掛 W5500把協(xié)議棧從 CPU 上整個剝掉三天內(nèi)從畫板到 ping 通這個組合就成了我后續(xù)做聯(lián)網(wǎng)設(shè)備的默認(rèn)起手式。STM32H7 以太網(wǎng) W5500 程序.rar 這類工程之所以被反復(fù)下載是因?yàn)樗@開了「MCU 上跑協(xié)議?!惯@條最陡的學(xué)習(xí)曲線。W5500 是一顆帶硬件 TCP/IP 協(xié)議棧的以太網(wǎng)芯片MCU 只通過 SPI 讀寫寄存器ARP、IP、ICMP、TCP、UDP 都在芯片內(nèi)部完成。適合誰適合把大量精力放在業(yè)務(wù)邏輯和穩(wěn)定性的開發(fā)者——工業(yè)數(shù)據(jù)采集、設(shè)備遠(yuǎn)程監(jiān)控、串口轉(zhuǎn)以太網(wǎng)網(wǎng)關(guān)這類場景要的不是炫技而是能長時間跑在產(chǎn)線上的可靠性。讀完這篇你會清楚整套方案的原理、接線、移植步驟和常見坑點(diǎn)。2. W5500 與 STM32H7 的硬件鏈路SPI 接口與電平匹配2.1 硬件協(xié)議棧的工作原理誰在替你處理 TCP/IP 報文W5500 內(nèi)部集成了 MAC 和 PHY并在此基礎(chǔ)上用邏輯電路實(shí)現(xiàn)了完整的 TCP/IP 協(xié)議棧。MCU 需要做的不是解析報文而是通過 SPI 接口讀寫 W5500 內(nèi)部的寄存器與數(shù)據(jù)緩沖區(qū)。發(fā)數(shù)據(jù)時把應(yīng)用數(shù)據(jù)寫進(jìn) W5500 的 TX Buffer然后發(fā)一條 SEND 命令收數(shù)據(jù)時檢測到接收事件后從 RX Buffer 把數(shù)據(jù)讀出來。TCP 的三次握手、重傳計時、ACK 應(yīng)答、分片重組這些邏輯在芯片內(nèi)部完成不消耗 MCU 的 Flash 和 RAM。STM32H7 在這個方案里的角色被簡化成了「搬數(shù)據(jù)的人」。SPI 的時鐘頻率、FIFO 深度、DMA 能力都會影響吞吐量但即便不用 DMA、純輪詢寫 SPI在 20MHz 的 SPI 時鐘下也能輕松跑出幾 Mbps 的 TCP 吞吐量足夠覆蓋絕大多數(shù)工業(yè)數(shù)據(jù)采集場景。和 STM32H7 自帶 MAC 外部 PHY 的方案相比W5500 的優(yōu)勢不是性能而是確定性和開發(fā)效率——省去了 LwIP 的內(nèi)存池調(diào)優(yōu)也省去了協(xié)議棧對 Cortex-M7 緩存一致性的特殊處理。2.2 最小硬件連接七根線加一個復(fù)位別小看中斷線W5500 與 MCU 的通信最少只需要七根線四根 SPI、一根片選、一根復(fù)位、一根中斷。注意這里的 SPI 只能做主模式且片選必須用 GPIO 軟件控制不能用 STM32H7 的硬件 NSS。W5500 引腳功能STM32H7 示例引腳說明SCSSPI 片選PB7GPIO 輸出低有效整個幀傳輸期間保持拉低SCLKSPI 時鐘PF7SPI5_SCK速率建議 20MHz 以下MOSI主出從入PF9SPI5_MOSIMISO主入從出PF8SPI5_MISO注意上拉RST復(fù)位PC6低有效需保證上電復(fù)位時序INT中斷輸出PC7下降沿有效建議接外部中斷輸入3.3V / GND電源3.3V / GND就近放 10uF 0.1uF 去耦電容引腳號以你手頭開發(fā)板的原理圖為準(zhǔn)這里給的是 STM32H743 的 SPI5 默認(rèn)復(fù)用關(guān)系。有一個細(xì)節(jié)容易被忽略W5500 的 MISO 引腳在 SPI 通信空閑時是高阻態(tài)如果 STM32H7 的 SPI 配置了硬件去拉低 MISO會導(dǎo)致第一個字節(jié)讀到錯誤數(shù)據(jù)。最省心的做法是在 MISO 上加一個 4.7kΩ 上拉電阻或者在 STM32CubeMX 里把 MISO 配置為 GPIO 輸入上拉模式。2.3 上電時序與復(fù)位引腳W5500 不認(rèn) SPI 的常見第一個原因很多人拿到工程直接下載發(fā)現(xiàn) SPI 讀寫寄存器全是 0xFF第一反應(yīng)是 SPI 配置錯了實(shí)際上大概率是復(fù)位時序沒滿足。W5500 要求 VCC 穩(wěn)定之后RST 引腳保持低電平至少 500us才能完成內(nèi)部 PHY 校準(zhǔn)和寄存器初始化。如果 MCU 的復(fù)位引腳和 W5500 的 RST 直接連在一起或者 RST 懸空沒有上拉上電瞬間可能出現(xiàn)不可預(yù)測的初始化狀態(tài)。常見做法是給 RST 引腳加一個 10kΩ 上拉電阻和 0.1uF 對地電容形成硬件 RC 上電復(fù)位。同時軟件上在初始化 SPI 之前先把 RST 拉低、延時 10ms、再拉高、再延時 100ms等 W5500 內(nèi)部邏輯完全穩(wěn)定后再訪問寄存器。判斷 W5500 是否就緒有一個標(biāo)準(zhǔn)動作讀版本寄存器正確值應(yīng)當(dāng)是 0x04。如果讀回來是 0xFF 或 0x00先查復(fù)位時序再查 SPI 的極性和相位這比盲目調(diào)代碼高效得多。3. 把 .rar 里的工程跑起來從解壓到 ping 通3.1 工程里真正要關(guān)心的文件驅(qū)動庫、平臺適配與業(yè)務(wù)代碼解壓一份 STM32H7 W5500 的 .rar 工程目錄往往混合著 HAL 庫、驅(qū)動中間層和用戶代碼。不要去翻每一行先找三類文件W5500 協(xié)議棧驅(qū)動、平臺適配層、網(wǎng)絡(luò)配置頭文件。最常見的是這套結(jié)構(gòu)w5500.c / w5500.h 負(fù)責(zé)寄存器讀寫socket.c / socket.h 負(fù)責(zé)封裝 Socket APIwizchip_conf.c 里是協(xié)議棧入口還有你自己寫的 spi_stm32h7.c 用來對接 STM32H7 的 SPI 外設(shè)。需要改的核心只有平臺適配層和網(wǎng)絡(luò)參數(shù)配置。協(xié)議棧驅(qū)動是標(biāo)準(zhǔn)的不要動。你自己寫的 SPI 讀寫函數(shù)需要滿足驅(qū)動庫要求的三個原語CS 控制、SPI 單字節(jié)收發(fā)、可能還有 SPI 高速連續(xù)讀寫。驅(qū)動庫在讀寫 RX/TX Buffer 時會用你提供的原語一次搬幾十到幾百字節(jié)如果你的 SPI 讀寫函數(shù)里面每個字節(jié)都重新配置一次時鐘速度會慢得離譜。我一般會把 SPI 初始化放在一個單獨(dú)的函數(shù)里只做一次然后通過一個純裸的收發(fā)函數(shù)供驅(qū)動調(diào)用。3.2 修改平臺適配層SPI 時鐘極性與 W5500 幀格式W5500 支持 SPI Mode 0CPOL0, CPHA0和 Mode 3CPOL1, CPHA1絕大多數(shù)官方例程默認(rèn) Mode 0。你用 STM32CubeMX 配置 SPI 時選擇低速主模式、8 位數(shù)據(jù)長度、MSB First極性選 Low相位選 1Edge片選選 Software就能和 W5500 對上。/* stm32h7_w5500_spi.c */ #include main.h static SPI_HandleTypeDef hspi_w5500; void w5500_spi_init(void) { hspi_w5500.Instance SPI5; hspi_w5500.Init.Mode SPI_MODE_MASTER; hspi_w5500.Init.Direction SPI_DIRECTION_2LINES; hspi_w5500.Init.DataSize SPI_DATA_SIZE_8BIT; hspi_w5500.Init.CLKPolarity SPI_POLARITY_LOW; /* CPOL 0 */ hspi_w5500.Init.CLKPhase SPI_PHASE_1EDGE; /* CPHA 0 */ hspi_w5500.Init.NSS SPI_NSS_SOFT; /* CS 用 GPIO 控制 */ hspi_w5500.Init.BaudRatePrescaler SPI_BAUDRATEPRESCALER_16; /* 約 13.5MHz 216MHz */ hspi_w5500.Init.FirstBit SPI_FIRSTBIT_MSB; if (HAL_SPI_Init(hspi_w5500) ! HAL_OK) { while (1); /* 初始化失敗直接卡住便于定位 */ } } static void spi_tx_byte(uint8_t data) { HAL_SPI_Transmit(hspi_w5500, data, 1, HAL_MAX_DELAY); } static uint8_t spi_rx_byte(void) { uint8_t rx 0xFF; HAL_SPI_Receive(hspi_w5500, rx, 1, HAL_MAX_DELAY); return rx; }這里每個字節(jié)都調(diào)用一次 HAL_SPI_Transmit 其實(shí)不是最優(yōu)的但勝在直觀可靠。HAL_SPI_Transmit 在 H7 上每次調(diào)用有固定的狀態(tài)機(jī)開銷實(shí)測在 13.5MHz 下達(dá)到 3Mbps 左右的吞吐量沒有問題。W5500 的 SPI 幀由三部分組成2 字節(jié)地址段、1 字節(jié)控制段、N 字節(jié)數(shù)據(jù)段。地址段指定寄存器偏移控制段里的 bit5 表示讀還是寫bit4-3 選擇訪問的塊——通用寄存器、Socket 寄存器、TX Buffer 或 RX Bufferbit2-0 設(shè)為 000 表示可變數(shù)據(jù)長度模式。以下是我在工程里實(shí)際使用的幀讀寫函數(shù)可以直接替換驅(qū)動庫底層的 SPI 原語/* W5500 片選控制換到你的工程時把引腳宏替換成實(shí)際定義的 GPIO */ #define W5500_CS_LOW() HAL_GPIO_WritePin(GPIOC, GPIO_PIN_6, GPIO_PIN_RESET) #define W5500_CS_HIGH() HAL_GPIO_WritePin(GPIOC, GPIO_PIN_6, GPIO_PIN_SET) void w5500_read_frame(uint32_t addr, uint8_t *buf, uint16_t len) { uint8_t ctrl (((addr 16) 0x03) 3) | (1 5); W5500_CS_LOW(); spi_tx_byte((uint8_t)(addr 8)); spi_tx_byte((uint8_t)(addr 0xFF)); spi_tx_byte(ctrl); /* 讀指令 塊選擇 變長模式 */ while (len--) { *buf spi_rx_byte(); } W5500_CS_HIGH(); } void w5500_write_frame(uint32_t addr, uint8_t *buf, uint16_t len) { uint8_t ctrl (((addr 16) 0x03) 3) | (0 5); W5500_CS_LOW(); spi_tx_byte((uint8_t)(addr 8)); spi_tx_byte((uint8_t)(addr 0xFF)); spi_tx_byte(ctrl); while (len--) { spi_tx_byte(*buf); } W5500_CS_HIGH(); }注意 ctrl 字節(jié)的低三位固定為 000這是 VDM 變長數(shù)據(jù)模式。塊選擇位來自 addr 的高位這是在驅(qū)動庫里約定好的 32 位地址編碼規(guī)則。片選必須在整個幀傳輸期間保持低電平不能每個字節(jié)都拉一次 CS否則 W5500 會認(rèn)為每次都是新的事務(wù)。如果你發(fā)現(xiàn)讀回來的數(shù)據(jù)只有第一個字節(jié)正確、后續(xù)全是 0xFF九成是片選時序問題。3.3 網(wǎng)絡(luò)參數(shù)初始化MAC、IP、掩碼、網(wǎng)關(guān)缺一不可把 W5500 驅(qū)動跑起來之后下一步是配置網(wǎng)絡(luò)參數(shù)。官方驅(qū)動的做法是先給每個 Socket 分配 TX/RX 緩沖區(qū)大小再寫入 MAC、IP、掩碼和網(wǎng)關(guān)。注意 MAC 地址不要用示例里的默認(rèn)值也不要和局域網(wǎng)里其他設(shè)備沖突否則會出現(xiàn)間歇性 ARP 失敗。這里給出最小初始化代碼/* 網(wǎng)絡(luò)參數(shù)結(jié)構(gòu)體 */ wiz_NetInfo g_net_info { .mac {0x02, 0x00, 0x00, 0x12, 0x34, 0x56}, .ip {192, 168, 1, 233}, .sn {255, 255, 255, 0}, .gw {192, 168, 1, 1}, .dns {192, 168, 1, 1}, .dhcp NETINFO_STATIC }; static uint8_t g_tx_buf[16 * 1024]; static uint8_t g_rx_buf[16 * 1024]; void network_init(void) { uint8_t txsize[8] {16, 0, 0, 0, 0, 0, 0, 0}; /* Socket0 獨(dú)占 16KB TX */ uint8_t rxsize[8] {16, 0, 0, 0, 0, 0, 0, 0}; /* Socket0 獨(dú)占 16KB RX */ /* 復(fù)位時序拉低保持 10ms再拉高等待內(nèi)部邏輯就緒 */ HAL_GPIO_WritePin(GPIOC, GPIO_PIN_5, GPIO_PIN_RESET); HAL_Delay(10); HAL_GPIO_WritePin(GPIOC, GPIO_PIN_5, GPIO_PIN_SET); HAL_Delay(100); wizchip_init(txsize, rxsize, g_tx_buf, g_rx_buf); wizchip_setnetinfo(g_net_info); /* 讀回來核對避免結(jié)構(gòu)體字節(jié)序?qū)е碌刂穼懛?*/ wiz_NetInfo verify; wizchip_getnetinfo(verify); }txsize 數(shù)組的單位是 KB16 表示 16KB。W5500 芯片內(nèi)部總共有 32KB 緩沖16KB 給 TX、16KB 給 RX所以 g_tx_buf 和 g_rx_buf 各分配 16KB。如果后續(xù)要開多個 Socket需要按比例拆分這些緩沖區(qū)每個 Socket 都要有獨(dú)立的 TX 和 RX。wizchip_init 的參數(shù)順序是 txsize、rxsize、txbuf、rxbuf很多人第一次寫反導(dǎo)致后續(xù) socket() 調(diào)用直接返回錯誤這一行值得反復(fù)核對。完成以上兩步后編譯下載PC 端配置同一網(wǎng)段的靜態(tài) IP比如 192.168.1.100ping 192.168.1.233。能通說明硬件鏈路、SPI、寄存器收發(fā)都正常ping 不通不要急著看代碼先用示波器量 SCLK 引腳有沒有時鐘輸出再量 RST 引腳電平是否被 W5500 拉低。硬件問題占了首輪調(diào)試的七成。4. 關(guān)鍵參數(shù)與調(diào)試技巧從 ping 通到 TCP/UDP 收發(fā)4.1 Socket 初始化與監(jiān)聽TCP 服務(wù)端連不上的常見原因W5500 的 Socket 操作流程和 BSD Socket 非常接近先 socket() 創(chuàng)建連接設(shè)置協(xié)議模式和本地端口然后 listen() 或 connect()。對 TCP 服務(wù)端來說最容易翻車的點(diǎn)是 socket() 返回成功就直接 while 循環(huán)里寫 send/recv沒有檢查 Socket 狀態(tài)。W5500 不會自己進(jìn)入監(jiān)聽狀態(tài)你必須顯式調(diào)用 listen()并且在每次 Accept 之前確認(rèn)狀態(tài)寄存器已經(jīng)是 SOCK_ESTABLISHED。#define TCP_SOCKET 0 void tcp_server_task(void) { if (socket(TCP_SOCKET, Sn_MR_TCP, 6000, 0) ! SOCK_OK) { return; /* Socket 打開失敗多半是緩沖區(qū)分配不足 */ } listen(TCP_SOCKET); while (1) { switch (getSn_SR(TCP_SOCKET)) { case SOCK_ESTABLISHED: { uint8_t buf[1024]; int16_t len recv(TCP_SOCKET, buf, sizeof(buf)); if (len 0) { send(TCP_SOCKET, buf, len); /* 回顯 */ } break; } case SOCK_CLOSE_WAIT: /* 對端關(guān)閉必須主動 disconnect 再 close否則 Socket 卡死 */ disconnect(TCP_SOCKET); close(TCP_SOCKET); break; case SOCK_CLOSED: /* Socket 被釋放后重新監(jiān)聽 */ socket(TCP_SOCKET, Sn_MR_TCP, 6000, 0); listen(TCP_SOCKET); break; default: break; } } }socket() 的第三個參數(shù) 6000 是本地端口第四個參數(shù) 0 是標(biāo)志位通常不用。這里的狀態(tài)機(jī)是我在工程里一直沿用的寫法核心思想是每個 case 都要有對應(yīng)的處置動作不能只處理 SOCK_ESTABLISHED。如果 TCP 客戶端連不上先讀一下 getSn_SR() 返回什么值一直停在 SOCK_INIT 說明 listen 沒生效停在 SOCK_CLOSED 說明 Socket 被斷開后沒有重新初始化。端口被占用時 socket() 本身就會失敗這時檢查是不是有上一個連接沒有 close。4.2 UDP 收發(fā)不需要握手但要注意 IP 與端口的來源UDP 的 Socket API 更簡單因?yàn)椴恍枰?listen 和 accept。調(diào)用 socket() 指定 Sn_MR_UDP 和端口后直接用 recvfrom 和 sendto。一個容易忽略的點(diǎn)sendto 必須傳入對端的 IP 和端口這個信息只能從 recvfrom 返回的參數(shù)里拿不能自己編。如果你的設(shè)備需要主動向服務(wù)器發(fā)送數(shù)據(jù)目標(biāo) IP 和端口寫死沒問題如果是應(yīng)答式協(xié)議請一定保存 recvfrom 回調(diào)里返回的 remote_ip 和 remote_port。#define UDP_SOCKET 1 void udp_echo_task(void) { uint8_t buf[512]; uint8_t remote_ip[4]; uint16_t remote_port; if (socket(UDP_SOCKET, Sn_MR_UDP, 6001, 0) ! SOCK_OK) { return; } while (1) { int16_t len recvfrom(UDP_SOCKET, buf, sizeof(buf), remote_ip, remote_port); if (len 0) { sendto(UDP_SOCKET, buf, (uint16_t)len, remote_ip, remote_port); } } }recvfrom 的返回值是收到的數(shù)據(jù)長度失敗時返回 SOCKERR_SOCKINVALID 這類負(fù)數(shù)。注意 remote_ip 是一個 4 字節(jié)數(shù)組remote_port 是 16 位無符號整數(shù)這兩個參數(shù)在 recvfrom 里是輸出型參數(shù)。UDP 模式下如果長時間沒有任何數(shù)據(jù)Socket 會保持打開狀態(tài)不需要像 TCP 那樣處理斷開事件所以上面的代碼可以一直輪詢。實(shí)測這個回顯邏輯在 13.5MHz SPI 下 UDP 吞吐量約 4Mbps遠(yuǎn)低于網(wǎng)絡(luò)帶寬瓶頸但做輕量級設(shè)備控制足夠。4.3 中斷與輪詢的選擇什么時候用回調(diào)什么時候用查詢W5500 有一個 INT 輸出引腳當(dāng) Socket 發(fā)生接收事件、連接建立、斷開等狀態(tài)變化時INT 會拉低。兩種處理方式各有適用場景中斷方式響應(yīng)快但你在回調(diào)函數(shù)里不能做耗時操作否則會阻塞其他中斷輪詢方式實(shí)現(xiàn)簡單但 CPU 需要頻繁讀寄存器。我的習(xí)慣是單 Socket 且數(shù)據(jù)流量不高的場景直接用 while 循環(huán)輪詢 Socket 狀態(tài)代碼簡單不容易出錯多 Socket 或者對響應(yīng)延遲有要求的場景把 INT 接到外部中斷中斷服務(wù)函數(shù)里只置一個標(biāo)志位實(shí)際收發(fā)放到主循環(huán)里做。判斷中斷源的方式是讀 Sn_IR 寄存器比如 Sn_IR_RECV 表示有數(shù)據(jù)到達(dá)處理完后寫回該寄存器清除標(biāo)志。如果不清除INT 引腳會一直保持低電平后續(xù)中斷再也進(jìn)不來。這個清標(biāo)志的操作必須放在讀取數(shù)據(jù)之前還是之后我的做法是先讀數(shù)據(jù)再清標(biāo)志因?yàn)榍逋陿?biāo)志后如果又有新數(shù)據(jù)到達(dá)會重新置位。如果先清標(biāo)志再讀數(shù)據(jù)數(shù)據(jù)讀走之前新數(shù)據(jù)到了標(biāo)志位會被置上但你可能讀漏一次。順序反了就是偶發(fā)丟包的來源。5. STM32H7 W5500 避坑指南5 條值得記錄的踩坑實(shí)錄5.1 現(xiàn)象能 ping 通但 TCP 連接總是超時現(xiàn)象是最典型的PC 能 ping 通開發(fā)板但用網(wǎng)絡(luò)調(diào)試助手連接 TCP 端口時一直沒有回應(yīng)。原因ping 走的是 ICMP 協(xié)議W5500 硬件協(xié)議棧會自動回包但這并不代表你的 Socket 已經(jīng)被正確配置。應(yīng)用層沒有調(diào)用 socket()、listen()或者 socket 打開失敗后沒有做任何處理都會導(dǎo)致端口沒有任何響應(yīng)。解決先在初始化代碼里檢查 socket() 的返回值確保等于 SOCK_OK然后打印 getSn_SR() 的狀態(tài)值如果一直是 SOCK_INIT 說明 listen() 沒有生效。另外一個常見問題socket() 里填的端口號是主機(jī)字節(jié)序還是網(wǎng)絡(luò)字節(jié)序在 W5500 驅(qū)動里端口號直接傳 uint16 即可不要手動調(diào)用 htons否則本來監(jiān)聽 6000 端口實(shí)際卻變成了 0x1770 反轉(zhuǎn)后的值PC 端怎么連都連不上。5.2 現(xiàn)象SPI 讀回全是 0xFF版本寄存器讀到 0xFF現(xiàn)象調(diào)用 wizchip_init 之前的讀版本操作返回 0xFF或者讀 MAC 地址全空。原因SPI 的極性和相位與 W5500 不匹配尤其很多人移植時直接復(fù)制了之前驅(qū)動 OLED 或 Flash 的 SPI 配置。W5500 支持 Mode 0 和 Mode 3但如果你用的是 Mode 1 或 Mode 2數(shù)據(jù)會在錯誤的邊沿被采樣讀回來的全是 1。解決確認(rèn) STM32CubeMX 里 SPI 設(shè)置為 CPOLLow、CPHA1Edge即 Mode 0。如果你在別的芯片上跑過 W5500 且當(dāng)時用的是 Mode 3那也要和現(xiàn)在的配置對齊不要混用。驗(yàn)證手段永遠(yuǎn)先讀 VERSION 寄存器讀到 0x04 再繼續(xù)往下調(diào)這是最省時間的判斷標(biāo)準(zhǔn)。5.3 現(xiàn)象數(shù)據(jù)偶發(fā)錯亂TCP 連接頻繁斷開現(xiàn)象設(shè)備長時間運(yùn)行后收到的數(shù)據(jù)出現(xiàn)字節(jié)錯位甚至 TCP 連接直接斷開重連。原因多半是中斷處理函數(shù)里做了過重的工作。W5500 的 INT 引腳下降沿觸發(fā)后如果你在中斷里直接調(diào)用 recv() 并且 recv() 內(nèi)部又通過 SPI 讀取大量數(shù)據(jù)整個 SPI 傳輸期間其他中斷會被阻塞此時又有新數(shù)據(jù)到達(dá)導(dǎo)致 INT 引腳拉低但標(biāo)志位還沒清除事件就丟了。解決中斷服務(wù)函數(shù)里只做一件事——置一個 volatile 標(biāo)志位主循環(huán)檢測到標(biāo)志后調(diào)用數(shù)據(jù)處理函數(shù)處理完畢再清除 Sn_IR。另一個隱蔽的坑是 recv() 讀完之后沒有正確回寫 Sn_RX_RD 寄存器導(dǎo)致 W5500 認(rèn)為數(shù)據(jù)沒被讀走緩沖區(qū)被占滿后停止接收表現(xiàn)就是連接還在但數(shù)據(jù)不再更新。建議讀完一段數(shù)據(jù)后立即調(diào)用 setSn_RX_RD() 和 command(Sn_CR_RECV) 收尾。5.4 現(xiàn)象換一塊開發(fā)板就失聯(lián)甚至第一次上電就失敗現(xiàn)象同一個程序在這塊板子上跑得好好的換一塊同型號板子就不通或者重新上電后進(jìn)入不可用狀態(tài)。原因W5500 的 RST 引腳懸空或者被板上的電容影響導(dǎo)致復(fù)位信號不完整。如果 RST 引腳沒接上拉電阻MCU 引腳默認(rèn)輸入狀態(tài)時電平不確定W5500 可能一直處于復(fù)位模式。解決確認(rèn) RST 引腳接了 10kΩ 上拉到 3.3V并并聯(lián) 0.1uF 電容到地。軟件上在 SPI 初始化之前執(zhí)行一次硬復(fù)位拉低 10ms拉高再等 100ms。如果你用的板子把 W5500 的 RST 接到了 MCU 的復(fù)位引腳上那么 MCU 每次復(fù)位都會帶動 W5500 復(fù)位這沒問題但要確保 MCU 的復(fù)位時間足夠長否則 W5500 還沒完成內(nèi)部初始化MCU 就開始訪問 SPI 了。5.5 現(xiàn)象ARP 解析偶爾失敗ping 時而通時而不通現(xiàn)象設(shè)備剛上電時 ping 不通等幾秒又通了或者局域網(wǎng)內(nèi)多臺設(shè)備同時出現(xiàn)時ARP 表現(xiàn)不穩(wěn)定。原因MAC 地址沖突。很多人下載的示例工程里 MAC 地址是寫死的同一個值比如 0x00 0x08 0xDC 開頭的那串兩臺設(shè)備在同一局域網(wǎng)就會出現(xiàn) ARP 緩存互相覆蓋表現(xiàn)就是時通時斷。解決為每臺設(shè)備生成唯一 MAC。STM32H7 內(nèi)部有 96 位唯一 IDUID取低 3 字節(jié)填充到 MAC 地址的末三位前三位保持廠商前綴不變。這樣即使幾十臺設(shè)備同時接入同一個交換機(jī)MAC 沖突的概率也極低。順帶提醒改 MAC 后需要重新上電才生效W5500 只在初始化時把 MAC 寫入 SHAR 寄存器。6. 進(jìn)階玩法把 W5500 從能用用到順手W5500 的入門玩法是數(shù)據(jù)回顯但真正決定這個方案價值的是三件事多 Socket 的緩沖區(qū)切割、DHCP 自動獲取 IP、以及把 W5500 做成固件升級通道。多 Socket 的緩沖區(qū)分配很容易理解W5500 總共有 16KB TX 和 16KB RX你需要通過 txsize 和 rxsize 數(shù)組把它們分配給 8 個 Socket。以下是我常用的分配策略Socket 數(shù)量TX 大小RX 大小適用場景1 個16KB16KB大包傳輸TCP 高速上傳2 個8KB / 8KB8KB / 8KB一個 TCP 一個 UDP4 個4KB / 4KB / 4KB / 4KB同左多路傳感器上報8 個2KB / 2KB ...同左長時間保持多個 TCP 連接注意一個 Socket 的 TX 和 RX 大小可以不同但芯片正常工作時不建議出現(xiàn) 0KB 的情況否則對應(yīng) Socket 打開會失敗。分配完緩沖區(qū)后記得重新調(diào)用 wizchip_init并且不能在程序運(yùn)行中途隨意改只能復(fù)位后重新初始化。DHCP 功能可以省去手動配置靜態(tài) IP 的麻煩。驅(qū)動庫里提供了 DHCP 客戶端初始化時把 g_net_info 的 dhcp 字段設(shè)為 NETINFO_DHCP然后周期調(diào)用 DHCP_run() 直到分配成功。實(shí)際項(xiàng)目里我一般給設(shè)備一個默認(rèn)靜態(tài) IP同時保留 DHCP 模式開關(guān)通過撥碼或配置項(xiàng)切換這樣既能在開發(fā)時快速調(diào)試又能在現(xiàn)場免配置部署。我最近做的一個項(xiàng)目中還把 W5500 的 TCP 服務(wù)端接到了 IAP 升級流程里設(shè)備啟動時進(jìn)入一個短暫窗口PC 端通過 TCP 連接把 bin 文件分幀發(fā)給設(shè)備設(shè)備收到后寫入外部 SPI Flash全部完成后跳轉(zhuǎn)到應(yīng)用區(qū)實(shí)現(xiàn)遠(yuǎn)程升級。W5500 在這里比 MCU 自帶 MAC 方案有天然優(yōu)勢——Bootloader 不需要引入?yún)f(xié)議棧只依賴一個 Socket API 就能實(shí)現(xiàn)文件接收代碼量少風(fēng)險低。這個方向適合有產(chǎn)品化需求的開發(fā)者重點(diǎn)投入一個是批量的設(shè)備離線升級另一個是設(shè)備日志遠(yuǎn)程抓取兩者的技術(shù)底座都是這套 Socket API。如果非要說一條血淚經(jīng)驗(yàn)?zāi)蔷褪窍劝?VERSION 寄存器讀出來再寫業(yè)務(wù)代碼先 ping 通再寫收發(fā)邏輯先調(diào)好狀態(tài)機(jī)再開優(yōu)化。這十幾年做以太網(wǎng)設(shè)備的經(jīng)驗(yàn)告訴我W5500 的坑基本都在硬件時序和初始化順序上軟件本身反而異常穩(wěn)定。按照上面的步驟走你也能少走那些我已經(jīng)替你們蹚過的彎路希望幫到你。本文還有配套的精品資源點(diǎn)擊獲取
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
日本97久久| 97超碰中文字幕| 一区二区三区日韩欧美| 啊啊啊啊网站| 人妻插插人妻人| 免费a级毛片av无码久久精品中文字幕| 99色视频| www.亚洲成人一区| 综合天天。| 先锋激情∨在线视频播放| 日韩欧美中文字| 亚洲色图欧美一区二区不卡| 妇女视频网站| 91粉嫩萝控精品福利网站_精品影音先锋国 | 日本不卡二区| 激情视频图片| 桃色人妻在线视频| 玖玖色综合| 91亚洲情色| 久九九九九九九热| 美国aaaaa一级黄片| 玖玖超碰熟| 五十路三区在线| 小草三级久久观看| 亚洲图片视频小说| 97伊人超碰| 天天躁狠狠躁av| 96久久精品一二三区色欲| 97伊人超碰| 亚洲综合校园春色| 91模特在线观看| 久久久精品久久| 91天天综合日韩欧美| 中文有码第五页| 欧美性特| 日韩成人性爱电影在线播放| 欧日a| 98久久超碰| 日日骚 av| 亚欧高清v| 最新亚洲人成网站在线影院| 国产中出内射一区二区| 综合网亚洲1| 少妇六月天| 夜夜狼人妻| 亚洲人成网www| 国产精品视频麻豆入口| 一中国女人毛片水真多| 久热在线精品免费观看| 中文字幕美女91| 影音先锋日本乱伦| 亚洲免费在线探花| 三级网色| 天天做天天爱天天爽| 欧美性爱1080p| 试看日韩黄片| 久久久久久久强迫| 黄色一级视| 青娱乐大香蕉| 欧美成人国产精品| 午夜福利区| 久久岛国| 无码久久国产 | 欧美片第一页| ?亚洲伊人伊成久久人综合网| 国产高清MV操逼视频| 日本护士高潮| 精品久久99| 亚洲天堂女优在线| 少妇特黄一区二区三区| 爱逼综合| a男人的天堂久久一级A毛片 | 91九色首页| 欧美黄色大香蕉一区二区| 色色福利| A啊啊在线观看| 国产偷人妻精品一区二区在线| 超碰偷拍| 日韩免费看在线黄色片| 国产亚洲精品第一最新| 欧美性,色九九| 十八禁黄色成人网站观看| 亚洲亚洲亚洲天堂天堂| 久综合国内精品自在自线| 口爆吞精在线观看| 亚洲丝袜B诱惑| 无卡一区=区| a级免费在线观看| 国产福利小视频高清在线观看| 一本一道波多野毛片中文在线| 中日亚韩免费视频| 成人AV素股で擦久久| 亚洲高清内射| 亚洲综人网| 狠狠爱综合网| 嫩草影院永久在线制服丝袜| 走光一区92下载| 综合久久2017| 久久久9视频| 久草免费在线视频| 1024人妻熟女一区二区三区| 久操99| 国产熟女| 国产精品露脸在线观看| 肏逼福利网站| 骚女高跟AV在线| 色99色| 欧美综合网1| 男女做爰猛烈动高潮A片免费应用 少妇厨房愉情理伦片bd在线观看 不卡中文字幕aⅴ在线 | 国产精品网址| 涩五月婷婷| 中文字幕二区| 国产综合操逼高清| 国产综合久| 天天综合官网| 色情综合网| 色香综合天天影视综合| 在线国产探花| 97亚洲自在精品在线观看| 韩国午夜理伦三级好看| 久久久久久久综合,国产| 国产精品国产自产高清AV| 果冻传媒一区二区三区| 欧美中文字幕男人天堂久久精品 | 日日干男人的天堂| 亚洲最大的黄色电影网站。| 中文字幕欧美丝袜07资源| 国产亚洲精品美女久久久久久2021| 伊人97色天使| 琪琪精品免费一区二区三区 | 1024亚洲中文字幕久在线看片你懂的| 色九九九| 欧美体内射精| 欧美日韩婷婷中文| 新怡红院| 久久国产精品一级二级三级| 日本熟女不卡视频| 91国产伊人大香蕉| 婷婷五月天网| 啪啪综合网| 久草色悠悠在线视频| a级免费在线观看| 黑人中出21连凳花野真衣| 成人AV超碰免费在线| 欧美青青视频| 中文字幕av乱伦| 91 天天综合| 激情久久av一区av二区av| 亚洲有薄码区久久在线一区| oumeisetu综合| www…国产操逼| av橘色网站| 麻豆久久久一区二区| 国产精品999aaa| 天天干天天日天天射黄色片| 大香蕉啪啪啪| 久久精品国产72国产精品福利| 九九九999久久久网站| 日韩综合无码色欲vv| 色亚州人久干视频在线观看免费版| 亚洲第一黄色av网站| 97欧美色| 天天干人妻| 啊视频在线| 人妻激情视频| 97色色国产视频| 凹凸视频特色日本特黄| 老司机深夜18禁污污网站| 啊啊啊啊在线观看网址| 色色婷婷五月天| 五月天精品| 九九热超碰97亚洲最新香蕉| 欧美日韩国产色图在线| 成人免费毛片| 夜夜嗨视频| 日韩精品大香蕉伊人在线| 超碰三级秋霞| 国产伦精品一区二区三区在线观| 亚洲色 国产 欧美 日韩| 人妻少妇精品久久久久久久| 另类欧美| 国产小炒后入式| 人人手机欧洲亚洲国产人妻| 亚洲无码99| 园内精品自拍视频在线播放| 97免费在线观看视频| 色哟哟综合| 偷拍亚洲视频一区二区三区四区| 中字一区| 久久同城AV| 九九久久99| 天天流夜夜操| 亚洲熟女乱色| 天美av在线观看| 婷婷色影院| 1禁看欧美黄片免费看| 五十路六十路素人熟女| 人妻一区二区三区视频| 国产精品一区二区三区免费视频| 国产精品毛片| 中文字幕av片| 久草电影网| 欧美女同在线| 大逼色网站| 欧美丰满少妇交换91欧美精品| 91国产美女丝袜足交精品视频| 国产性感骚丝袜在线| 东北女人av| 韩日男人的天堂| 久草综合京东| 久久手机视直播| 青青青操| 久久中文字幕女同性恋一区| 欧美大的香蕉有线电视视频 | 中文字幕久热视频在线| Av手机版天堂网| 久久亚州精品成人Av无| 日韩人妻免费精品| 一区二区三区精品视频| 日韩欧美麻豆| 一级二级在线观看| 欧美精品99久久久**| 五月婷婷六月丁香网址| 欧美一级国产一级| 亚洲第一页色| 欧美精品在线观看| 蜜臀久久久国产| 久草老司机| 欧美视频一区二区三区| 91国模| 成人蜜乳小视频网站| 国产超碰人人操| 三级精品三级在线观看| 在线免费观看日韩一区| 一区二区三区激情在线观看| 久久免费精彩视频| 97 亚洲 日韩 欧美 在线| 日日日啊啊啊| 色欲天香天天综合网-成年人三级片网站-欧美乱妇狂野-日韩国产专区-久久久久久 | 天美传媒AV在线| 老司机福利青青草| 欧美一级久久久久久久大片动画 | 久久亚洲天天做| 欧美在线综合| 超碰91在线| 无码精品一区二区三区潘金莲| 澳门特级毛片免费观看| 加勒比综合| 麻豆国产97在线| 手机在线A片| aaa一级黄片| 色呦呦、国产精品| 夜夜嗨一区| 欧州一区二区三区四区| 免费一级视频特黄色大片| 色妺妺在线视频| 五十路人妻在线| 好爽免费视频| 国产精品免费视频人成| 人妻在线臀日韩| 超碰69| 青青草中文字幕| 性在久久久久久| 久久久人体| 男人精品天堂一区| 青娱乐福利99| 亚洲国产精品久久久久婷婷青年| 日本不卡免费二区| 多毛小伙内射老太婆| 日本有码影片下载| 97超碰色情| 在线国产福利网址导航| 精品.99999| 0755午夜福利视频| 国产精品一区二区三区四区五区| 中国一区二区亚洲人妻| 欧美97日韩精品| 日韩欧洲操屄视频| 日韩中文字幕熟妇人妻| 青青草久草| 中国探花熟女| 天天舔日美女视频| 日韩精品视频在线观看一卡二卡| 青青欧洲黑| 欧差乱伦二三| 欧插网站| 超碰 国产熟女精品一区| 97无码视频在线播放| 长长久久88视频| 婷婷色网| 国产一级高跟丝袜| 四虎视频在线观看| 免费观看国产小粉嫩喷水精品午| 久久久久久性爱视频| 国产综合久久久麻桃个| 色欧美天天| www.91视频网| 精品精品精品| 台湾一区国产高清在线| 校园春色综合香蕉| 国产综合网站在线播放| 亚州精品人妻一二三区| 午夜一区| 日本欧美中文字幕| 密臀在线免费观看| 亚洲 中文字幕 精品| 亚洲精品欧洲精品| 欧美精品成人在线播放| 色五月激情AV在线| 久热九九| 欧美成人免费在线观看| 裸体美女久久久| 男人高清无码一区二区| 78m成人视线| 伊人AAA| 九九九免费视频| 97超久碰| AA丁香综合激情| 亚洲情色 欧美| 亚洲AV无码天美传媒一区| 日本孕妇一区二区视频操逼免费看 | 色眯眯射| 99精品在线| 欧美裸体美女日麻屄| 99re只有精品| 图片区小说区| 一区二区三区亚洲| 精品少妇99| 日本免费一区二| 在线国产福利网址导航| 女性91网站| 搞中出视频在线观看| 日韩不卡毛片Av免费高清| 性欧美91| 亚洲精品蜜桃久久久久久久| 97五月天| 中文字幕久热视频在线| 亚洲色人阁| 人人超碰在线观看黄| 久久久精品视频免费观看| 久久精品无码专区| 色网综合网| 免费观看欧美日韩操逼视频| 福利在线观看一区二区| 黄色AAAAA欧美| 国产熟码AV| 久久25| 爱av免费| 大香蕉一区二区在线观看.| 伊人9| 久久久久久夜夜夜夜夜| 亚洲aV性爱| 色欲Av人妻精品一区二| 后入精品| AV色五月天| 91日本在线观看| 在线视频97| 18禁久久| 久久久久幕乱码| 综合激情97 | 亚洲男人天堂2012| 五月婷婷六月激情| 黄色av一区二区在线| 八戒午夜福利理论片| 欧美人妻制服| 色九九久九九| com 首页 18岁 禁区 女优 免费 精选 同城| 91暧暧| 屌逼麻豆| 日产狠狠干| 久草大| 日本高清有码网址视频| 精品一区二区成人| 午夜一区二区三区国产| 99国产精品免费| 日韩欧美成人性爱在线| 51国产午夜精品视频| 91n处女在线观看| 欧美亚洲韩国视频十五区| 无码人妻精品一区二区三区九九| 亚洲 欧美 小说| 无码一区二区三区四区五区六区七区八区九区十区视频 | 久久久一区二区三区四曲免费听| 婷婷丁香五月综合| 97在线播放| 亚洲综合贴图91| 999 久久久| 日韩精品第3页| 国产精品。| 欧美午夜色妇色鬼| 一区二区三区四区久久视1| 欧美亚洲丝袜美女电影| 男人的天堂色偷偷青青草视频婷婷网| 夜夜狠狠躁日日躁色视频| 日韩精品人妻中文字幕有码午| 日本韩国一本产品小视频日本韩国一本产品久久久产品小视频日本韩国一本产品久 | 性爱av在线免费观看| 综合欧美激情网| 国产Aα| 无码国产精品久久久久| 亚洲有薄码区日本系列中文字幕| 久久久9品一区二区三区| 密臀在线免费观看| 男人的天堂日韩| 欧美色图在线视频少妇| 欧美精品黑人猛交高潮| 青春草莓视频在线观看网址| 一级二级三级黑人无码| 亚洲乱码尤物193YW| 亚洲欧美激情在线视频| 久操B网| 日日夜夜国产综合| 欧美三四五区| jizz啪啪| 99视频只有精品| 久久9精品视频| 伊人久久亚洲中文字幕不卡| 精品国产乱码久久久| 亚洲欧美日韩偷拍色图| 国产精品久久久久亚洲av| 在线国产一区二区av| 麻豆2区1区天美| 老女人老91妇女老热女| 9久久久久| 中字幕人妻一区二区三区| 综合操逼| 日韩精品三区四区| 骚熟女AV网| 免费看污网站| av橘色网站| 国产精品久久久久无码Av网曝门| av资源在线播放天堂| 久久精品视频久久久| 啊啊啊啊好大好硬啊啊啊啊啊| 日韩大香蕉AV影片| 三级色综合| 少妇二级| 97精品视频在线| 国内精品久久人妻性色av| 色色色色电影网| 亚州精品丝袜-不卡成人免费| 校园春色 亚洲| 中文字幕一区二区免费在线| 大香樵伊人网| 97超碰伊人| 欧美精品一区二区少妇免费A片 | 96AV精品| 亚洲欧美精品一区天堂久久 | 免费国产视频| 国模精品一区二区三区苹果色戒| 久热久| 人人操人人摸人人骑| 婷婷九月| 快灬快灬 一下爽蜜桃在线观看 | 久久国产精品熟女人妻| 欧美性爱18观看| 日韩另类色图| 亚洲欧美洲综合| 国产福利影视| 舔人妻中文免费视频| 国产亚洲精品av一区| 久久国产精品,久久国产| 亚洲欧洲综合视频在线| 91国产丝袜美女| 91香蕉视频在线观看免费| 欧美老熟另类| 亚洲无码超碰免费| 久插综合| 日韩性爱1级片视频| 久久久久久久久九九久孕交| 综合伊人网12色| 精品人妻二区三区| 欧美不卡五十路| 麻豆亚洲Av成人无码一区精品| 一本久道久久综合狠狠爱一密臀精| 激情久久久| 啊啊啊轻点在线观看| 国产福利小视频高清在线观看| 精品无码人妻一区二区免费蜜桃| 日本高清_区二区三区| 97超碰超欧美。| 国精精品无码一二三区水多多| 在线亚洲丝袜视频网站| aaaa黄片| 夜夜欢天天干| 蜜臀亚洲中文| 九月激情婷婷| 人妻少妇无码| 久久婷婷一区二| 天天视频黄| 国产人妻一区二区三区欧美毛片| 日本一级二级三级网站| 日韩一级二级三级| 最新亚洲风情电影| 国产三级中文有码在线视频| 欧美97av| 国产怡红院| 日韩国产不卡在线视频| 欧美少妇第一页| 99日免费视频中文字幕| 国产激情av女片自拍| 亚洲中文电影| AV无码久久久精品| 欧美色图综合网| 麻豆天美传媒在线视频天堂| 亚洲精品aa久久伊人| 天堂8在线新版官网| 精品一区二区三区蜜桃| 日本三级小说中文字幕| 日韩国产乱子伦App| 欧美熟妇色| 一区二区精品更新提醒| 全免费a敌肛交毛片免费| 亚洲欧美97| 97色色色综合网站| 91超级碰碰| 摸奶性爱视频网站在线免费播放| 亚洲成人帖图| 97久久精品国产| 色五月激情综合网| 午夜电影在线观看无码专区| 精品亚洲天堂| 少妇久久久免费| 91网亚洲| 欧美在线视频99| 性影在线视频| 女欧美一区二三区| 上床啊啊啊| 制服诱惑亚洲一区二区三区在线观看| 人妻碰碰碰碰碰碰| 五月天久久久| 中文字幕狠狠玩| 欧美A片中文字幕| 风韵犹存大大大大香蕉 | 性感美女91影视| 天天操美美| 一区二区三区日韩欧美 | 亚拍在线| 99国产精品免费| 四虎永久在线精品免费网址| 中文字幕在线日亚州9| 天天艹天天日| 91露脸熟女专区| 永久免费观看的毛片的网站| 日本Suv精品一区二区| 大屁股国产在线视频| 日日干夜夜操视频h| 激情自拍 校园春色| 五月色网| 九九久久精品| av一区二区三区 中文| 中文字幕一区二区三区高清| 91精品久久久久五月天精品| 麻豆综合一区av| 久久在线观看免费视频| 大JI巴好深好爽又大又粗视频| 九t超碰| 熟女久久| 91岛国动作片| 日本啊啊啊啊啊视频| 精品亚洲国产成人av网站| а√天堂资源官网在线资源| 97亚洲精品| 欧美亚洲| 日韩强奸av| 日本性感人妻91| 黄色免费网| 国产中文字幕在线点播| 嗯啊视频免费在线观看| 另类 日韩 熟女| 天天天天天天天天天天干美女| 亚洲成人性爱网站在线播放| 午夜福利精品| 久久东京国产精品视频| 99热这里是精品| 超碰亚洲97| 欧美日韩淫加| 啊啊啊啊啊好舒服视频| 色网亚洲人| 亚洲资源站| 伊人影院日本| 很黄很色的视频在线观看| 欧美日韩激情无码专区| 欧美一级做a爰片免费视频| www.色婷婷.com| www老逼91| 国产地址二三| 亚州欧美在线| 奇米四色网| 在线人人人人人人精品超| 啪啪一区| 夜夜嗷嗷一区二区| 99re99在线视频| 一级性爱视频免费观看| 色综合久久88色综合久久天天| 99热欧美| 大香蕉宅男伊人| 97ai亚洲| αⅴ天堂| 夜夜嗨一区二区| 日欧毛片久久| 欧美黑人熟妇精品91| 肏逼福利网站| a在线视频免费观看| 人妻精品4K4K4K4K4| 99热99re6国产在线播放| 丝袜美腿亚洲| 欧美成人性爱视频大全| 97爱亚洲综合色| 99999亚洲另类| 国产精品区在线12p| 99色色| 我中文字幕6区| 日韩欧美亚洲自拍偷拍| 精品国产片亚洲一区| 爱爱动态试试看6 0秒| 日本亚洲嫩草影院啪啪| 粉嫩粉嫩一区性色AV片| 欧洲射精91| 亚洲熟女诱惑| 囯产乱伦一区二区三女 | 国产精品小视频一区二区三区| 色香伊人| 74成人在线| 久久国产99精品72福利| 大色网久久| 强奸乱伦中文字幕AV| 97精品久久久久久久| 96一区二区| 欧美做爰无码A片视频| 久久日本熟女精品一区| A级国产欧美激情在线| 国产女人高潮视频| 97综合激情| 综合欧美日本三级| 蜜桃精品视频一区二区三区| av天堂精品久久| 夜夜騷av、一區二區| A级在线视频| 久久,精品一二三| 蜜臀久久99精品久久久久久成人小说 | 日本中文字幕不卡视频| 成人在线视频二区| 91n欧美| 色婷婷五月综合| 91无码人妻精品一区二区三区蜜桃| 性开放中文AV高清无码免费看| 亚洲色图a| 亚洲午夜未满十八勿入网站日本又色又爽又黄 | 夜草欧美| 欧美老妇曰批的视频| 啊啊啊啊啊好大好舒服想要| 欧美爱三级日韩久久| 日本加靬比网站发布页| 17c在线成人免费A片观看| 91亚州欧美| 大香蕉视频一二三区| 综合天天网| 国语国产操逼伊人AV网| 少妇人妻激情四射| 白嫩国模丰满一二三区| 一卡二卡三卡| 超91综合网| 国产综合日韩伦理| 97精品视频网站| 1024人妻熟女一区二区三区| 欧美日综合| 色综合美国| 无码直播久久久| 五月开心久久AV官网| 国产伦乱91| 日本二三四区| 密臀在线免费观看| 亚洲最大成人a毛毛片| 2020中文字幕在线| 无码9区| 免费啪啪av| 九九这里只有精品| 91人妻超碰| 一区二区三区亚洲| 丝袜美腿丝袜| 日本一二三高清| 成人免费福利在线观看| 九九九九九九成人| 国产精品不卡av免费在线观看| 中文字幕国产精品1区| .精品人妻一区二区三| 99蜜桃臀久久久欧美精品网站| 亚洲无码久久久久久久| 国产深喉视频一区二区| 色五月第四色| 五月天婷婷久久| 五月天久久综合网| 97操碰| 久久一区,青青青青草视频在线播放| 密乳AV免费观看| 中文 人妻 制服| 嗯嗯啊啊好疼| 夜夜嗨AV一区天天| 亞洲久久直播| 久久国产在线一区二区| av2014 日韩在线中文字幕| 超碰色中文| 午夜男女爽爽爽在线视频| 内射夫妻三片| 青青青在线高清视频在线一二三四区| 久久久熟妇熟女国产| 激情AV| 国产一区二区a毛片| 96精品久久| 我想要啊 啊 啊| 美女的肌被草喷水视频| 丁香激情五月天| 一级A片女人高潮叫床| 99人妻碰碰碰久久久久禁片| 青青草在线视频播放器| SUV一区二区在线看| 亚洲中文字幕乱码无码一区二区| 色色色色网站| 亚洲第一狼人丝袜美女另类 | 夜夜爽夜夜操| 51一区二区三区| 97操在线| 人人超碰在线观看黄| 97免费在线视频在线观看| 人妻中文在线| 爽 好舒服 无码刺激久久| 天天插夜夜操| 韩三级a视频在线观看| 超碰97久久| 98久久超碰| 国产sv美女内射| 久肏视频字幕| 99日视频在线免费| 欧美性五月| 欧洲亚洲综合| 操老熟女AV| 激情五月天校园春色网| 精品无码久久久久| 欧美亚洲高清不卡| 色娱乐色呦呦夜夜夜夜av| 97久久久精品| 伊人991| 欧美亚洲国产日本在线,久久精品国产| 中文字幕88av在线| AV在线资源| 亚洲资源网| 日韩大香蕉精品在线视频| 另类图片亚洲加勒比另类图片亚洲加勒比另类图片亚洲加勒比 | 国产九九久久久精品| 欧美日韩色图片| 老熟女91av| 亚洲精品天天影视综合网 | 婷婷伊人綜合中文字幕| 夜夜操狠狠操| 91人人爽人人爽| 久艹伊人精品综合在线| 9 7超碰在线免费观看| 啊啊啊快操我视频| 久9爱经典视频| aV中文麻| 欧美色999| 亚川综合视频| 婷婷五月天激情网| 亚洲少妇喷视频看| 第45页一区二区| 男人的天堂日韩| 日日夜夜骑| 亚洲美女av无码| 香蕉热人人精品| 一区三区啪啪| 96精品在线| 97自拍一区| 伊人在线大香蕉视频久久| 花花AV导航| 国产精品久久久久无码Av网曝门| 99精品视频在线观看免费| 立川理惠加勒比无码| 日韩免费人妻色情网站| 亚洲综合小视频小说在线观看| 男人的天堂久久狠| 91老司机在线| 日本免费人成视频播放120秒| 人人看人人摸人人色| 久久天天摸| av线电影| 中文字幕一区二区视频在线观看| 日本一级婬片试看三分钟| 99热超碰在线| 884t在线| 97在线免费看视频| 这里只有精品视频在线观看麻豆| 99婷婷| 国产第二页| 中文字幕丰满人妻日本| 午夜欧美女人操逼| 久久人人爽爽爽人久久久| 一级免费精品| 久久久久久久伊人精品| 99精品免费| 欧美天天综合站| TS人妖另类精品视频系列| 激情看片网站| 青青草啪啪网| 男人天堂欧美| 色小视频蜜乳| 97超碰精品成| 国产午夜福利专区综合| 日韩熟妇二区| 日本久久久久久久久久| 九月丁香婷婷色| 欧美三级一级| 丰满人妻一区二区三区免费| 中文字幕成人理论在线| 久久綜合很很很| 免费a v| 丁香六月啪啪| 精品一区二区2| 少妇高潮特黄A片| 蜜臀久久在线视频| 久久精品一区二区一8| 99热精品在线在线| 变态另类专区| 日韩乱伦视频| 国内成人圈中文字幕无码视频| 综合伊人激情| 有码人妻系列| 探花视频免费观看国产专区| 精品区9| 亚洲 欧美 第一页| 99精品久久久久久久婷婷蜜桃| 欧美 亚洲 综合 制服 另类| 中国一级操逼视频| 啊啊啊快操我视频| 国产精品网址| 亚熟hd视频在线| 日本欧美韩国国产在线| 亚洲大色堂| 成人一级性爱| 大乔未久88一区| 久久社区一区二区三区| 色天欧美| 丁香五月综合| 91AV国产精品| 亚洲成人免费在线| 国产精品9999| 久久国色天香香蕉| 国产1024在线播放| 久久鲁夜| 333kkkk·亚洲com久久| AV天黑人| 天天日日夜夜| 少妇被c 黄 免费观看| 日本少妇va7777| 素人一区二区三区日韩| 久久久99999久网站| 1769一区二区| 蜜屁av| 亚洲色图激情小说| 日小BB小视频| 少妇特黄一区二区三区| 久久五月丁香| 日本一级真人黄色性爱视频| 久久国99999| 免费啪啪一级视频| 97神马久久| 久热久一区二区三区| 看大黄色大片原件| 安微少妇操BBB| 噜噜在线| 自拍偷拍草一草| 狠狠操狠狠燥| 亚洲一区中文字幕久久,果冻传媒一区二区天美传媒 | 久久久久密臀视频| 99re久久| 久久超碰国产一区二区三区| 新视频sss国产| 97碰在线视频| 色视频蜜乳| 疯操AV| 中文字幕在在线观看网站| AV污污污污| 九九热九九| 亚洲日韩少妇一道本视频| 婷婷五月天基地| 人妻少妇被猛烈进入中| 亚洲骚逼少妇| 欧美日本天堂| 九九热精品视频在线观看| 久操操AV电影| 久久久久久加勒比| 久久大陆| 区日韩亚洲乱码av电影| 亚洲国产欧美另类自拍| 男人精品区| 精品欧美日韩在线观看| 日韩二级| 婷婷丁香六月天| 日韩人妻播放| 亚洲熟伦熟妇AV无码春色| 亚洲欧美国产精品久久久久久久| 丝袜综合色图| 七久久久| 人妻少妇av在线观看| 免费1级a做爰片观看| 资源新线在线天堂| 91亚洲狠狠色| 日韩精品人妻中文字有码在线| 欧美另类色| 99精品久久| 欧美大香蕉专区网| 一级@啪啪视频| 高潮9999外国| 久久久久久国产手机AV| 无码精品久久久久久亚洲| 国产国产亚洲一二三久久| 天天干天天日天天射黄色片| 久热免费视频| 无码日韩网站| 日韩亚洲国产视频| 日韩操p| 色香AV| 精品人妻一区二区三区不卡断| 日韩美女高潮喷水视频| 精品免费一区二区三区在线亚洲人成| 免费观看啪视频| 久久久精选| 久久婷婷亚洲欧| 蜜臀AV成人精品蜜臀AV久久| 99久久com免费视频′| 涩五月婷婷| 五月天啪啪| 成人在线视频网| 日本性爱少妇| 日本精品高清一二区一本到| 色婷婷激一区二区三区| 天天干干天天干干| 亚洲h片在线免费观看| 亚洲高清无毛一区二区| 精品国产91内射久久| 自拍偷拍第26| 八戒无码国产午夜福利| 国产强奸91| av在线不卡一区二区三区| 26uuu欧美日韩| 青娱乐欧美激情一区二区| 国产成人精品必看 | 天天草天天干天天日| 日本一本道A级黄色毛片试看60分钟| 亚洲精品无码成人久久久99| 亚洲国产成人精品久久久国产成人一区二区三.| 国产极品精品美女视频| 26uuu国产日韩综合在线观看| 日日操丁香五月天| 亚欧国产无码精品在线| 丁香五月激情婷婷| 国产丝袜视频| 国内精品不卡无毒99999| 91色图片| 色眯眯av| 2017,超碰| 女性91网站| 一区二区精品日韩欧美在线观看| 懂色av色欲av蜜臀av| 亚洲中文字母在线播放| 日韩三级视频一区二区三区| 欧美专利1区2区3区4区5区免费| 亚洲一区二区三区麻豆传媒| 久草男人天堂| 丝袜加勒比| 免费AV中文网在线观看| 人人看人人爰人人操| www色日本| 国产一区二区三区中文字幕| 久久999久| 日日嗷| 又大又大又大又粗爽高潮观看 | 抽查国产福利主播| 91影视亚洲| 久热最新在线杭州| 成人性爱av| 欧美日韩第一页| 一二三啪啪专区| 欧洲亚洲综合| 禁十八久久| 后入式福利| 丰满人妻区一区二区三| 岛国色情视频在线观看| 玖玖婷婷五月天| 一级黄碟在线观看| 狠狠躁伊人中文字幕| 日本人妻伦在线中文字幕| 国产成人在线观看综合| 色狠狠综合噜一二三区| 亚洲AV色图一区| 亚洲无码 国产无码| 男男H黄动漫啪啪无遮挡网站| 久久久久久久久久久六六| 大香蕉综合在线| 欧美天天射| 久久一区二区三区入口| n1038 一二三区| 少妇色欲综合网2| 国产高清精品一区二区三区毛片| 五月婷在线| 亚洲男人天堂视频| 一区不卡在线观看av| 免费看毛片操穴| 中文无线日韩一区| 亚洲乱色熟女一区| 色综合美国| 色与欲影视天天看综合网| 嗯啊视频免费在线观看| AV色天香在线| 亚洲日韩精品一区二区| 日本一区二区成人在线| 天天日天天射天天干| 午夜操一操| 日韩精品99999| 91麻豆天美国产欧美高潮| 国产欧美日韩一区二区三区| 宅男91视频在线播放| 96久久久久| 亚洲激情四射| 日韩精品人妻中文字幕不卡乱码| 狼狼色丁香久久婷婷综合五月 | 青青草好吊色| 六十路日本| 夫妻AV网站| 精品国产乱码久久久久久口爆网站 | 啊啊啊啊嗯嗯在线久久久| 欧美性爱中文字幕无线码| 天天综合网在线| 97无码视频在线播放| 97超碰美国| 中文字幕欧美丝袜07资源| 丝袜美腿诱惑亚洲欧美视频在线观看 | 超碰99热中文字幕| 国产精品白丝在线播放| 超碰激情808| 综合伊人网12色| 欧美日韩电影一区二区| 日韩操啪| 国产美女91视频| 中文色综合| 国产精品久久久久久久久久久久久久久| 精品亚洲一区在线观看| 鸥美精品一区二区久久婷婷| 最新av中文字幕高清| 久久亚洲熟妇在线视频| 一区二区三区视频国产免费| 好舒服视频| 无码国产精品久久久久| 九九久久国产精品怡红院| 色一情一乱一乱一区91Av| 鸥美中出| 久9久| 婷婷丁香九月| 男人天堂免费| 九九热精品| 97干在线| 欧美熟女激情| 奇米狠999| 亚洲 欧美 日本 国内 首页| 亚洲激情四射| 沈阳熟女高潮对白视频| 级品肉射| 久久草在线综合视频| 天美传媒婬乱在| 麻豆国产av网| 久久精品国产亚洲AV无码做| 久久久久久人| 人妻天天爽夜夜爽爽| 男人天堂黄片| 欧美色91| 日韩av熟女一区二区三区成人| 女同女同恋久久级三级| 亚洲色天堂九9| 国产精品久久9| 思思热影视| 久久激情婷婷| 国产二区三区粉嫩在线| 日本网色| yaouchengrenav| 超碰97资源网亚洲| 天天摸夜夜摸| 婷婷中文网| 亚洲巨爆乳一区二区三区四季网| 亚洲宗合网| 天综合中文| 国产熟女免费观看久久| 九色黄站| 四虎在线免费视频| 久久精品免费| 91干熟女| 无码高清操逼网址| 欧洲综合色| 国产精品丝袜久久亚洲不卡| 婷婷激情啪啪| 人人操,操人人| 一中国女人毛片水真多| 亚洲蜜臀精品视频久久| 激情亚洲天堂| 九九九九久久久| 久久久免费的精品| 秋霞一集毛片观看| 欧美综合色图片| 亚热日本熟女| 人人手机欧洲亚洲国产人妻| 美女被艹尤物视频| ji熟女.com| 激情小说在线视频| 9久9久| 久久久久9| 色婷婷成人综合| 天天综合,91综合永久| 欧美十八禁网站| 岛国片在线播放| av影片在线观看不卡| 67914在线兔费成人视频| 天天看高清麻豆| 超碰97色色| 熟妇高潮一区二区免费视频| 日本韩欧美在线播放a| 久久91精品国产9丨久久分亭| 国产精品 视频| 国产97视频| 久久九九97| 极品少妇久久久久| AV久日| 日本免费一区二区不卡 | 久久久久国产精品喷潮免费观看臀| 日韩精品资源专区二区| 清纯唯美亚洲| 欧美亚洲丝袜人妻制服中文99| 欧亚韩国999| 四虎免费视频| 龙兴卡官方查询| 色五月AV| 无码黑人精品一区二区三区三| 97超碰欧美精品| 限制级中的三级片中的黑粗大屌屌日人妻熟女 | 337p大胆噜噜噜噜噜91Av| 殴美在线AⅤ| 操高情无码| 93人人操人人| 日本操大逼| 可以免费观看的日韩av毛片| 中文字幕一区二区在线日韩精品| 国产三级资源在线观看| 国产av激情无码久久天堂| 日语五十路和六十路亚洲国产精品 | 2019久久久久久久久福利| 午夜福利av电影在线| 在线国产福利网址导航| 国产自产自拍| 色欲日韩欧美在线一区| 亚洲熟女中文字幕在线| 九九RE视频在线精品| 婷婷五月天久久精品视频一区二区三区|