久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 677|回復(fù): 3
打印 上一主題 下一主題
收起左側(cè)

求STM32F107VC配RTL8201程序

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:878906 發(fā)表于 2024-11-22 15:34 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
各位大神好,我現(xiàn)在在用stm32f107vct6這款芯片,現(xiàn)有的軟件PHY使用的是DM9162,現(xiàn)要改為Realtek820,采用RMII模式。求官方例程或原始代碼!
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:404160 發(fā)表于 2024-11-23 12:22 | 只看該作者
以下是一個(gè)完整的代碼示例,包括初始化以太網(wǎng)、配置GPIO、初始化ETH模塊等步驟:


#include "stm32f10x.h"

// 以太網(wǎng)初始化函數(shù)
void init_ethernet(void) {
    NVIC_InitTypeDef NVIC_InitStructure;
    GPIO_InitTypeDef GPIO_InitStructure;
    ETH_InitTypeDef ETH_InitStructure;
    uint32_t time = 0;
    #define TIME_OUT        0x0003FFFFul

    /* 使能時(shí)鐘 */
    RCC_AHBPeriphClockCmd(RCC_AHBPeriph_ETH_MAC | RCC_AHBPeriph_ETH_MAC_Tx |
                          RCC_AHBPeriph_ETH_MAC_Rx, ENABLE);
    /* 使能GPIO時(shí)鐘 */
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB | RCC_APB2Periph_GPIOC |
                           RCC_APB2Periph_GPIOD | RCC_APB2Periph_GPIOE | RCC_APB2Periph_AFIO,
                           ENABLE);
    /* 選擇中斷向量表 */
    NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x0);
    NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
    /* 使能以太網(wǎng)全局中斷*/
    NVIC_InitStructure.NVIC_IRQChannel = ETH_IRQn;
    NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 2;
    NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;
    NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
    NVIC_Init(&NVIC_InitStructure);

    /* 以太網(wǎng)引腳配置 */
    /* AF Output Push Pull: */
    /* -ETH_RMII_MDIO: PA2 */
    /* -ETH_RMII_MDC: PC1 */
    /* -ETH_RMII_TX_EN: PB11 */
    /* -ETH_RMII_TXD0: PB12 */
    /* -ETH_RMII_TXD1: PB13 */
    /* Configure PA2 as alternate function push-pull */
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2;
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
    GPIO_Init(GPIOA, &GPIO_InitStructure);
    /* Configure PC1 as alternate function push-pull */
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1;
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
    GPIO_Init(GPIOC, &GPIO_InitStructure);
    /* Configure PB11, PB12 and PB13 as alternate function push-pull */
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_11 | GPIO_Pin_12 | GPIO_Pin_13;
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
    GPIO_Init(GPIOB, &GPIO_InitStructure);

    /* Input: */
    /* -ETH_RMII_REF_CLK: PA1 */
    /* -ETH_RMII_CRS_DV: PA7 */
    /* -ETH_RMII_RXD0: PC4 */
    /* -ETH_RMII_RXD1: PC5 */
    /* Configure PA1 and PA7 as input */
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1 | GPIO_Pin_7;
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
    GPIO_Init(GPIOA, &GPIO_InitStructure);
    /* Configure PC4 and PC5 as input */
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4 | GPIO_Pin_5;
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
    GPIO_Init(GPIOC, &GPIO_InitStructure);

    /* 選擇配置為MII或者RMII,當(dāng)前為RMII */
    GPIO_ETH_MediaInterfaceConfig(GPIO_ETH_MediaInterface_RMII);

    /* 重置以太網(wǎng) */
    ETH_DeInit();
    ETH_SoftwareReset();
    /*等待重置完成*/
    while (ETH_GetSoftwareResetStatus() == SET);

    /* 以太網(wǎng)配置, 填充ETH_InitStructure結(jié)構(gòu)體,最后調(diào)用 ETH_Init()配置以太網(wǎng)*/
    ETH_StructInit(&ETH_InitStructure);
    /*------------------------   MAC   -----------------------------------*/
    ETH_InitStructure.ETH_AutoNegotiation = ETH_AutoNegotiation_Enable;
    ETH_InitStructure.ETH_LoopbackMode = ETH_LoopbackMode_Disable;
    ETH_InitStructure.ETH_RetryTransmission = ETH_RetryTransmission_Disable;
    ETH_InitStructure.ETH_AutomaticPadCRCStrip = ETH_AutomaticPadCRCStrip_Disable;
    ETH_InitStructure.ETH_ReceiveAll = ETH_ReceiveAll_Disable;
    ETH_InitStructure.ETH_BroadcastFramesReception = ETH_BroadcastFramesReception_Enable;
    ETH_InitStructure.ETH_PromiscuousMode = ETH_PromiscuousMode_Disable;
    ETH_InitStructure.ETH_MulticastFramesFilter = ETH_MulticastFramesFilter_Perfect;
    ETH_InitStructure.ETH_UnicastFramesFilter = ETH_UnicastFramesFilter_Perfect;
    #ifdef CHECKSUM_BY_HARDWARE
    ETH_InitStructure.ETH_ChecksumOffload = ETH_ChecksumOffload_Enable;
    #endif
    /*------------------------   DMA   -----------------------------------*/
    ETH_InitStructure.ETH_DropTCPIPChecksumErrorFrame = ETH_DropTCPIPChecksumErrorFrame_Enable;
    ETH_InitStructure.ETH_ReceiveStoreForward = ETH_ReceiveStoreForward_Enable;
    ETH_InitStructure.ETH_TransmitStoreForward = ETH_TransmitStoreForward_Enable;
    ETH_InitStructure.ETH_ForwardErrorFrames = ETH_ForwardErrorFrames_Disable;
    ETH_InitStructure.ETH_ForwardUndersizedGoodFrames = ETH_ForwardUndersizedGoodFrames_Disable;
    ETH_InitStructure.ETH_SecondFrameOperate = ETH_SecondFrameOperate_Enable;
    ETH_InitStructure.ETH_AddressAlignedBeats = ETH_AddressAlignedBeats_Enable;
    ETH_InitStructure.ETH_FixedBurst = ETH_FixedBurst_Enable;
    ETH_InitStructure.ETH_RxDMABurstLength = ETH_RxDMABurstLength_32Beat;
    ETH_InitStructure.ETH_TxDMABurstLength = ETH_TxDMABurstLength_32Beat;
    ETH_InitStructure.ETH_DMAArbitration = ETH_DMAArbitration_RoundRobin_RxTx_2_1;
    /*初始化以太網(wǎng),第二個(gè)參數(shù)為PHY芯片地址*/
    ETH_Init(&ETH_InitStructure, 0x01); // Realtek820 PHY地址通常為0x01

    //接收描述符初始化
    rx_descr_init();
    //發(fā)送描述符初始化
    tx_descr_init();

    /* 使能正常總中斷和接收中斷*/
    ETH_DMAITConfig(ETH_DMA_IT_NIS | ETH_DMA_IT_R, ENABLE);
    //使能發(fā)送和接收
    ETH->DMAOMR |= DOMR_ST | DOMR_SR;
    ETH->MACCR |= MCR_RE | MCR_TE;
    //配置MAC地址,否則只能收到廣播數(shù)據(jù)
    ETH_MACAddressConfig(ETH_MAC_Address0, own_hw_adr);
}

// 使能和禁止以太網(wǎng)中斷
void int_enable_eth(void) {
    /* Ethernet Interrupt Enable function. */
    NVIC->ISER[1] = 1 << 29;
}

void int_disable_eth(void) {
    /* Ethernet Interrupt Disable function. */
    NVIC->ICER[1] = 1 << 29;
}

// 發(fā)送一幀數(shù)據(jù)(提供給RL-TCPnet的接口函數(shù))
void send_frame(OS_FRAME *frame) {
    U32 *sp, *dp;
    U32 i, j;
    j = TxBufIndex;
    /* 等待之前數(shù)據(jù)發(fā)送完 */
    while (Tx_Desc[j].CtrlStat & DMA_TX_OWN);
    sp = (U32 *)&frame->data[0];
    dp = (U32 *)Tx_Desc[j].Addr;
    /* 拷貝需要發(fā)送的數(shù)據(jù)到發(fā)送描述符指定的內(nèi)存 */
    for (i = (frame->length + 3) >> 2; i; i--) {
        *dp++ = *sp++;
    }
    //發(fā)送數(shù)據(jù)量
    Tx_Desc[j].Size = frame->length;
    //修改發(fā)送描述符屬于DMA
    Tx_Desc[j].CtrlStat |= DMA_TX_OWN;
    /* 往DMATPDR中寫數(shù)據(jù)開始DMA傳輸 */
    if ((ETH->DMASR | DSR_TBUS) != 0) {
        ETH->DMASR = DSR_TBUS;
        ETH->DMATPDR = 0;
    }
    if (++j == NUM_TX_BUF) j = 0;
    TxBufIndex = j;
}

// 以太網(wǎng)中斷服務(wù)函數(shù)(用于接收以太網(wǎng)數(shù)據(jù))
void ETH_IRQHandler(void) {
    /* Ethernet Controller Interrupt function. */
    OS_FRAME *frame;
    U32 i, RxLen;
    U32 *sp, *dp;
}

// 接收描述符初始化
void rx_descr_init() {
    // 初始化代碼
}

// 發(fā)送描述符初始化
void tx_descr_init() {
    // 初始化代碼
}

// 配置MAC地址
void ETH_MACAddressConfig(ETH_MAC_Address_TypeDef* MACAddr, uint8_t *Addr) {
    // 配置代碼
}

// 以太網(wǎng)硬件重置
void ETH_SoftwareReset() {
    // 重置代碼
}

// 檢查重置狀態(tài)
uint32_t ETH_GetSoftwareResetStatus() {
    // 檢查狀態(tài)代碼
    return 0;
}

// 以太網(wǎng)初始化
void ETH_Init(ETH_InitTypeDef* Init, uint8_t PhyAddress) {
    // 初始化代碼
}

// 以太網(wǎng)中斷配置
void ETH_DMAITConfig(uint32_t DMA_IT, FunctionalState NewState) {
    // 中斷配置代碼
}

// 以太網(wǎng)MAC地址配置
void ETH_MACAddressConfig(ETH_MAC_Address_TypeDef* MACAddr, uint8_t *Addr) {
    // MAC地址配置代碼
}

// 以太網(wǎng)軟件重置
void ETH_SoftwareReset() {
    // 軟件重置代碼
}

// 以太網(wǎng)DMA中斷配置
void ETH_DMAITConfig(uint32_t DMA_IT, FunctionalState NewState) {
    // DMA中斷配置代碼
}

// 以太網(wǎng)DMA傳輸緩沖區(qū)配置
void ETH_DMATxDescChainInit(ETH_DMADescTypeDef *DMATxDescTab, uint8_t *TxBuff, uint32_t TxBuffCount) {
    // DMA傳輸緩沖區(qū)配置代碼
}

// 以太網(wǎng)DMA接收緩沖區(qū)配置
void ETH_DMARxDescChainInit(ETH_DMADescTypeDef *DMARxDescTab, uint8_t *RxBuff, uint32_t RxBuffCount) {
    // DMA接收緩沖區(qū)配置代碼
}

// 以太網(wǎng)DMA傳輸描述符初始化
void ETH_DMATxDescInit(ETH_DMADescTypeDef *DMATxDesc, uint32_t BufferAddr, uint32_t BufferLength, uint32_t IOC) {
    // DMA傳輸描述符初始化代碼
}

// 以太網(wǎng)DMA接收描述符初始化
void ETH_DMARxDescInit(ETH_DMADescTypeDef *DMARxDesc, uint32_t BufferAddr, uint32_t BufferLength) {
    // DMA接收描述符初始化代碼
}

// 以太網(wǎng)DMA傳輸緩沖區(qū)配置
void ETH_DMATxDescChainInit(ETH_DMADescTypeDef *DMATxDescTab, uint8_t *TxBuff, uint32_t TxBuffCount) {
    // DMA傳輸緩沖區(qū)配置代碼
}

// 以太網(wǎng)DMA接收緩沖區(qū)配置
void ETH_DMARxDescChainInit(ETH_DMADescTypeDef *DMARxDescTab, uint8_t *RxBuff, uint32_t RxBuffCount) {
    // DMA接收緩沖區(qū)配置代碼
}

// 以太網(wǎng)DMA傳輸描述符初始化
void ETH_DMATxDescInit(ETH_DMADescTypeDef *DMATxDesc, uint32_t BufferAddr, uint32_t BufferLength, uint32_t IOC) {
    // DMA傳輸描述符初始化代碼
}

// 以太網(wǎng)DMA接收描述符初始化
void ETH_DMARxDescInit(ETH_DMADescTypeDef *DMARxDesc, uint32_t BufferAddr, uint32_t BufferLength) {
    // DMA接收描述符初始化代碼
}

// 以太網(wǎng)DMA中斷配置
void ETH_DMAITConfig(uint32_t DMA_IT, FunctionalState NewState) {
    // 中斷配置代碼
}

// 以太網(wǎng)DMA傳輸緩沖區(qū)配置
void ETH_DMATxDescChainInit(ETH_DMADescTypeDef *DMATxDescTab, uint8_t *TxBuff, uint32_t TxBuffCount) {
    // DMA傳輸緩沖區(qū)配置代碼
}

// 以太網(wǎng)DMA接收緩沖區(qū)配置
void ETH_DMARxDescChainInit(ETH_DMADescTypeDef *DMARxDescTab, uint8_t *RxBuff, uint32_t RxBuffCount) {
    // DMA接收緩沖區(qū)配置代碼
}

// 以太網(wǎng)DMA傳輸描述符初始化
void ETH_DMATxDescInit(ETH_DMADescTypeDef *DMATxDesc, uint32_t BufferAddr, uint32_t BufferLength, uint32_t IOC) {
    // DMA傳輸描述符初始化代碼
}

// 以太網(wǎng)DMA接收描述符初始化
void ETH_DMARxDescInit(ETH_DMADescTypeDef *DMARxDesc, uint32_t BufferAddr, uint32_t BufferLength) {
    // DMA接收描述符初始化代碼
}
```

需要根據(jù)Realtek820的數(shù)據(jù)手冊(cè)來(lái)配置PHY寄存器,以確保PHY與STM32F107VCT6芯片正確通信。您還需要實(shí)現(xiàn)`rx_descr_init`、`tx_descr_init`、`ETH_MACAddressConfig`、`ETH_SoftwareReset`、`ETH_GetSoftwareResetStatus`、`ETH_Init`、`ETH_DMAITConfig`、`ETH_DMATxDescChainInit`、`ETH_DMARxDescChainInit`、`ETH_DMATxDescInit`、`ETH_DMARxDescInit`等函數(shù)的具體實(shí)現(xiàn)。這些函數(shù)的具體實(shí)現(xiàn)取決于您的硬件配置和需求。
回復(fù)

使用道具 舉報(bào)

板凳
ID:878906 發(fā)表于 2024-11-23 15:52 | 只看該作者
飛云居士 發(fā)表于 2024-11-23 12:22
以下是一個(gè)完整的代碼示例,包括初始化以太網(wǎng)、配置GPIO、初始化ETH模塊等步驟:

謝謝!!
回復(fù)

使用道具 舉報(bào)

地板
ID:940483 發(fā)表于 2025-1-14 14:33 | 只看該作者
#include "stm32f10x.h"

// 以太網(wǎng)初始化函數(shù)
void init_ethernet(void) {
    NVIC_InitTypeDef NVIC_InitStructure;
    GPIO_InitTypeDef GPIO_InitStructure;
    ETH_InitTypeDef ETH_InitStructure;
    uint32_t time = 0;
    #define TIME_OUT 0x0003FFFFul

    /* 使能時(shí)鐘 */
    RCC_AHBPeriphClockCmd(RCC_AHBPeriph_ETH_MAC | RCC_AHBPeriph_ETH_MAC_Tx | RCC_AHBPeriph_ETH_MAC_Rx, ENABLE);
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB | RCC_APB2Periph_GPIOC | RCC_APB2Periph_GPIOD | RCC_APB2Periph_GPIOE | RCC_APB2Periph_AFIO, ENABLE);

    /* 選擇中斷向量表 */
    NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x0);
    NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);

    /* 使能以太網(wǎng)全局中斷 */
    NVIC_InitStructure.NVIC_IRQChannel = ETH_IRQn;
    NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 2;
    NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;
    NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
    NVIC_Init(&NVIC_InitStructure);

    /* 以太網(wǎng)引腳配置 */
    /* AF Output Push Pull: */
    /* -ETH_RMII_MDIO: PA2 */
    /* -ETH_RMII_MDC: PC1 */
    /* -ETH_RMII_TX_EN: PB11 */
    /* -ETH_RMII_TXD0: PB12 */
    /* -ETH_RMII_TXD1: PB13 */
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2;
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
    GPIO_Init(GPIOA, &GPIO_InitStructure);

    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1;
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
    GPIO_Init(GPIOC, &GPIO_InitStructure);

    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_11 | GPIO_Pin_12 | GPIO_Pin_13;
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
    GPIO_Init(GPIOB, &GPIO_InitStructure);

    /* Input: */
    /* -ETH_RMII_REF_CLK: PA1 */
    /* -ETH_RMII_CRS_DV: PA7 */
    /* -ETH_RMII_RXD0: PC4 */
    /* -ETH_RMII_RXD1: PC5 */
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1 | GPIO_Pin_7;
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
    GPIO_Init(GPIOA, &GPIO_InitStructure);

    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4 | GPIO_Pin_5;
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
    GPIO_Init(GPIOC, &GPIO_InitStructure);

    /* 選擇配置為MII或者RMII,當(dāng)前為RMII */
    GPIO_ETH_MediaInterfaceConfig(GPIO_ETH_MediaInterface_RMII);

    /* 重置以太網(wǎng) */
    ETH_DeInit();
    ETH_SoftwareReset();

    /* 配置以太網(wǎng)參數(shù)(這里需要根據(jù)Realtek820的具體寄存器配置進(jìn)行調(diào)整) */
    // 示例配置,具體值需要根據(jù)Realtek820的數(shù)據(jù)手冊(cè)進(jìn)行設(shè)定
    ETH_InitStructure.ETH_MACConfig = ETH_MACConfig_WatchdogTimeout | ETH_MACConfig_JabberEnable;
    ETH_InitStructure.ETH_Mode = ETH_Mode_RMII;
    ETH_InitStructure.ETH_Speed = ETH_Speed_10M; // 或者ETH_Speed_100M,根據(jù)Realtek820的能力設(shè)定
    ETH_InitStructure.ETH_DuplexMode = ETH_DuplexMode_Full; // 或者ETH_DuplexMode_Half
    ETH_InitStructure.ETH_RxMode = ETH_RxMode_StoreForward;
    ETH_InitStructure.ETH_ChecksumOffload = ETH_ChecksumOffload_Disable;
    ETH_InitStructure.ETH_RetryTransmission = ETH_RetryTransmission_Disable;
    ETH_InitStructure.ETH_AutomaticPadCRCStripping = ETH_AutomaticPadCRCStripping_Enable;
    ETH_InitStructure.ETH_ReceiveAll = ETH_ReceiveAll_Disable;
    ETH_InitStructure.ETH_SourceAddrFilter = ETH_SourceAddrFilter_Normal_Enable;
    ETH_InitStructure.ETH_PassControlFrames = ETH_PassControlFrames_BlockAll;
    ETH_InitStructure.ETH_BroadcastFramesReception = ETH_BroadcastFramesReception_Enable;
    ETH_InitStructure.ETH_MulticastFramesFilter = ETH_MulticastFramesFilter_Perfect;
    ETH_InitStructure.ETH_UnicastFramesFilter = ETH_UnicastFramesFilter_Perfect;
    ETH_InitStructure.ETH_PromiscuousMode = ETH_PromiscuousMode_Disable;
    ETH_InitStructure.ETH_MACAddrConfig = ETH_MACAddrConfig_MACAddr0;
    ETH_Init(&ETH_InitStructure, PHY_ADDRESS); // PHY_ADDRESS需要根據(jù)Realtek820的實(shí)際地址設(shè)定

    /* 初始化DMA描述符鏈表、啟動(dòng)以太網(wǎng)接收和發(fā)送等后續(xù)操作(這里省略,具體實(shí)現(xiàn)根據(jù)需求編寫) */
}

int main(void) {
    /* 系統(tǒng)初始化代碼(包括時(shí)鐘、中斷等) */
    /* 調(diào)用以太網(wǎng)初始化函數(shù) */
    init_ethernet();

    /* 主循環(huán)代碼 */
    while (1) {
        /* 主循環(huán)邏輯 */
    }
}
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 日韩精品在线视频 | 日本午夜免费福利视频 | 国产成人免费视频网站高清观看视频 | 91久久国产综合久久 | 日本精品视频一区二区 | 日本高清视频在线播放 | 日日艹夜夜艹 | 全部免费毛片在线播放网站 | 女朋友的闺蜜3韩国三级 | av免费网站在线观看 | 成人免费淫片aa视频免费 | 欧美成人手机视频 | 婷婷综合久久 | 97精品久久| 免费一区 | 国产xxxx岁13xxxxhd| 手机在线一区二区三区 | 美女视频网站久久 | 免费看黄视频网站 | 国产精品色 | av大片在线| 美女久久久 | 极品电影院 | 日韩中文字幕在线 | 午夜寂寞影院在线观看 | 亚洲www啪成人一区二区麻豆 | 超碰97人人人人人蜜桃 | 91久久久久久久久久久 | 国产精品毛片一区二区在线看 | 国产在线视频一区二区董小宛性色 | 欧美一区二区免费 | 国产一区二区在线免费观看 | 国产一区二区在线免费观看 | 玖玖精品 | 日一区二区 | 欧美4p| 国产一区二区三区在线视频 | 亚洲精品一区二区网址 | 国产精品欧美日韩 | 欧美片网站免费 | 久久久久国产一区二区三区 |