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

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

QQ登錄

只需一步,快速開始

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

stm32怎么實(shí)現(xiàn)串口通訊

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:366743 發(fā)表于 2018-7-7 13:57 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
初學(xué)stm32,利用串口實(shí)現(xiàn)與單片機(jī)的發(fā)送和接收數(shù)據(jù)不會(huì)使用,還請(qǐng)各位大佬幫幫忙。。。。。
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:142059 發(fā)表于 2018-7-7 18:39 | 只看該作者
發(fā)不了文件啊,要重定向printf函數(shù)
回復(fù)

使用道具 舉報(bào)

板凳
ID:367225 發(fā)表于 2018-7-8 11:27 | 只看該作者
網(wǎng)上有很多資料和例程,要學(xué)會(huì)查找資料和思考,買一個(gè)STM32的開發(fā)板,最好是資料豐富,售后支持好的,對(duì)照資料一步步學(xué),很容易實(shí)現(xiàn)的。
回復(fù)

使用道具 舉報(bào)

地板
ID:367320 發(fā)表于 2018-7-8 14:50 | 只看該作者
找對(duì)應(yīng)STM型號(hào),了解簡(jiǎn)單的例程就行
回復(fù)

使用道具 舉報(bào)

5#
ID:142059 發(fā)表于 2018-7-10 10:05 | 只看該作者
Angle145 發(fā)表于 2018-7-7 18:39
發(fā)不了文件啊,要重定向printf函數(shù)

用到printf函數(shù)才需要重定向,直接用串中發(fā)送字節(jié)并不需要重定向,
回復(fù)

使用道具 舉報(bào)

6#
ID:142059 發(fā)表于 2018-7-10 10:12 | 只看該作者
你有51基礎(chǔ)嗎?Stm32和51不同的就只有中斷函的書寫方式,51是在函數(shù)體后加中斷號(hào)來(lái)決定中斷服務(wù)程序,而Stm32的中斷函數(shù)是固定死的,中斷函數(shù)名字在啟動(dòng)文件(匯編)里就定義好了,所以要使用stm32的串口只需要初使化對(duì)應(yīng)的串口的引腳成輸出和輸入,并且打開引腳復(fù)用時(shí)鐘,然后再配置串口控制寄存器(配置波特率停止位數(shù)據(jù)位奇偶校驗(yàn)等),其實(shí)這些都是死的,像模版一樣記住就行。
回復(fù)

使用道具 舉報(bào)

7#
ID:142059 發(fā)表于 2018-7-10 10:26 | 只看該作者
/*************************USART串口*****************************************/
#define PRINTF_COM   USART1    //printf打印串口選擇  可選:USART1、USART2、USART3、UART4、UART5

#pragma import(__use_no_semihosting)                             
struct __FILE
{
        int handle;
};
FILE __stdout;   
void _sys_exit(int x)
{
        x = x;
}
int fputc(int ch, FILE *f)
{       
        OS_ENTER_CRITICAL();   
        USART_SendData(USART1, (uint8_t) ch);
        while (USART_GetFlagStatus(USART1, USART_FLAG_TC) != SET);
        OS_EXIT_CRITICAL();
        return ch;       
}

void USART_SendByte(USART_TypeDef *USART_COM,u8 c)   //串口發(fā)送一個(gè)字節(jié)
{
        while((USART_COM->SR&0X40)==0);//循環(huán)發(fā)送,直到發(fā)送完畢
        USART_COM->DR = (u8)(c);
        while((USART_COM->SR&0X40)==0);//循環(huán)發(fā)送,直到發(fā)送完畢
}

void USART_SendString(USART_TypeDef *USART_COM,unsigned char *s)  //串口發(fā)送字符串函數(shù)
{
        while(*s)
        {
                while((USART_COM->SR&0X40)==0);//循環(huán)發(fā)送,直到發(fā)送完畢
    USART_COM->DR = (u8)(*s);
                while((USART_COM->SR&0X40)==0);//循環(huán)發(fā)送,直到發(fā)送完畢
                s++;
        }
}

void USART_SendBuf(USART_TypeDef *USART_COM,unsigned char *buf,u16 len)  //串口發(fā)送數(shù)組函數(shù)
{
        while(len--)
        {
                while((USART_COM->SR&0X40)==0);//循環(huán)發(fā)送,直到發(fā)送完畢
    USART_COM->DR = (u8)(*buf++);
                while((USART_COM->SR&0X40)==0);//循環(huán)發(fā)送,直到發(fā)送完畢
        }
}

void USART1_Config(u32 BaudRate)  //串口1初始化函數(shù)
{
  GPIO_InitTypeDef GPIO_InitStructure;
        USART_InitTypeDef USART_InitStructure;
        NVIC_InitTypeDef NVIC_InitStructure;
       
        //使能USART1,GPIOA時(shí)鐘
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1|RCC_APB2Periph_GPIOA, ENABLE);       
  
        //GPIO端口設(shè)置
        //USART1_TX   GPIOA.9初始化
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;        //PA.9
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;         //復(fù)用推挽輸出
  GPIO_Init(GPIOA, &GPIO_InitStructure);           //初始化GPIOA.9
   
  //USART1_RX          GPIOA.10初始化
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;//PA10
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;//浮空輸入
  GPIO_Init(GPIOA, &GPIO_InitStructure);//初始化GPIOA.10  
       


  //USART 初始化設(shè)置
        USART_InitStructure.USART_BaudRate = BaudRate;//串口波特率
        USART_InitStructure.USART_WordLength = USART_WordLength_8b;//字長(zhǎng)為8位數(shù)據(jù)格式
        USART_InitStructure.USART_StopBits = USART_StopBits_1;//一個(gè)停止位
        USART_InitStructure.USART_Parity = USART_Parity_No;//無(wú)奇偶校驗(yàn)位
        USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;//無(wú)硬件數(shù)據(jù)流控制
        USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;        //收發(fā)模式

  USART_Init(USART1, &USART_InitStructure);      //初始化串口1
       
        //Usart1 NVIC 配置
  NVIC_InitStructure.NVIC_IRQChannel = USART1_IRQn;
        NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=3 ;//搶占優(yōu)先級(jí)3
        NVIC_InitStructure.NVIC_IRQChannelSubPriority = 3;                //子優(yōu)先級(jí)3
        NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;                        //IRQ通道使能
        NVIC_Init(&NVIC_InitStructure);        //根據(jù)指定的參數(shù)初始化VIC寄存器
       
       
        USART_ClearFlag(USART1,USART_FLAG_TC);
  USART_ITConfig(USART1, USART_IT_RXNE, ENABLE); //開啟串口接受中斷
  USART_Cmd(USART1, ENABLE);                     //使能串口1
}
                                                       
void USART2_Config(u32 BaudRate)  //串口2初始化函數(shù)
{  
  GPIO_InitTypeDef GPIO_InitStructure;
  USART_InitTypeDef USART_InitStructure;
        NVIC_InitTypeDef NVIC_InitStructure;

        //時(shí)鐘使能
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);//使能GPIOA,D時(shí)鐘
        RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART2,ENABLE);//使能USART2時(shí)鐘
       
        //GPIO端口設(shè)置
        //TX
        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2;                   //PA2
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;             //復(fù)用推挽
  GPIO_Init(GPIOA, &GPIO_InitStructure);
  
        //RX
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3;             //PA3
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; //浮空輸入
  GPIO_Init(GPIOA, &GPIO_InitStructure);  

        RCC_APB1PeriphResetCmd(RCC_APB1Periph_USART2,ENABLE);      //復(fù)位串口2
        RCC_APB1PeriphResetCmd(RCC_APB1Periph_USART2,DISABLE);     //停止復(fù)位

        USART_InitStructure.USART_BaudRate = BaudRate;                  //波特率設(shè)置
        USART_InitStructure.USART_WordLength = USART_WordLength_8b;  //8位數(shù)據(jù)長(zhǎng)度
        USART_InitStructure.USART_StopBits = USART_StopBits_1;       //一個(gè)停止位
        USART_InitStructure.USART_Parity = USART_Parity_No;          ///奇偶校驗(yàn)位
        USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;//無(wú)硬件數(shù)據(jù)流控制
        USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;//收發(fā)模式

  USART_Init(USART2, &USART_InitStructure);                //初始化串口
        USART_ClearFlag(USART2,USART_FLAG_TC);
  
        //中斷
        NVIC_InitStructure.NVIC_IRQChannel = USART2_IRQn; //使能串口2中斷
        NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 3; //先占優(yōu)先級(jí)2級(jí)
        NVIC_InitStructure.NVIC_IRQChannelSubPriority = 3; //從優(yōu)先級(jí)2級(jí)
        NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; //使能外部中斷通道
        NVIC_Init(&NVIC_InitStructure); //根據(jù)NVIC_InitStruct中指定的參數(shù)初始化外設(shè)NVIC寄存器

  USART_ITConfig(USART2, USART_IT_RXNE, ENABLE);//開啟中斷
   
  USART_Cmd(USART2, ENABLE);                    //使能串口
}

void USART3_Config(u32 BaudRate)   //串口3初始化函數(shù)
{
        NVIC_InitTypeDef NVIC_InitStructure;
        GPIO_InitTypeDef  GPIO_InitValue;
        USART_InitTypeDef USART_InitValue;
       
       
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO|RCC_APB2Periph_GPIOB, ENABLE);
        RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART3,ENABLE);
       
        //GPIO端口設(shè)置
        GPIO_InitValue.GPIO_Pin=GPIO_Pin_10;
        GPIO_InitValue.GPIO_Speed=GPIO_Speed_50MHz;
        GPIO_InitValue.GPIO_Mode=GPIO_Mode_AF_PP;
        GPIO_Init(GPIOB,&GPIO_InitValue);
       
  GPIO_InitValue.GPIO_Mode = GPIO_Mode_IN_FLOATING;
  GPIO_InitValue.GPIO_Pin =GPIO_Pin_11;
  GPIO_Init(GPIOB,&GPIO_InitValue);
  
        USART_InitValue.USART_BaudRate = BaudRate;
  USART_InitValue.USART_WordLength = USART_WordLength_8b;
  USART_InitValue.USART_StopBits = USART_StopBits_1;
  USART_InitValue.USART_Parity = USART_Parity_No;
  USART_InitValue.USART_HardwareFlowControl = USART_HardwareFlowControl_None;
  USART_InitValue.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;
       
  USART_Init(USART3,&USART_InitValue);
        USART_ClearFlag(USART3,USART_FLAG_TC);
        USART_ITConfig(USART3,USART_IT_RXNE,ENABLE);//配置串口接收非空中斷
       
  NVIC_InitStructure.NVIC_IRQChannel =USART3_IRQn ;
  NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority =3; //搶占優(yōu)先級(jí)3
  NVIC_InitStructure.NVIC_IRQChannelSubPriority = 3;   //子優(yōu)先級(jí)3
  NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;   //使能USART3中斷
  NVIC_Init(&NVIC_InitStructure);  
       
  USART_Cmd(USART3,ENABLE);
}


void UART4_Config(u32 BaudRate)     //串口4初始化函數(shù)
{
        GPIO_InitTypeDef GPIO_InitStructure;
        USART_InitTypeDef USART_InitStructure;
        NVIC_InitTypeDef NVIC_InitStructure;
       
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE);   
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);  
        //注意UART4是掛載在APB1總線上的,用RCC_APB1PeriphClockCmd()函數(shù)初始化!
        RCC_APB1PeriphClockCmd(RCC_APB1Periph_UART4,ENABLE);
       
        //GPIO端口設(shè)置
        //UART4_TX   PC.10
        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;      //將UART4 的TX 配置為復(fù)用推挽輸出 AF_PP
        GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz; //輸出速度50MHz
        GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF_PP;   //推挽輸出模式 Out_PP
        GPIO_Init(GPIOC, &GPIO_InitStructure);
       
        //將UART4 的RX 配置為復(fù)用浮空輸入 IN_FLOATING
        //UART4_RX          PC.11
        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_11;
        GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IN_FLOATING; //浮空輸入 IN_FLOATING
        GPIO_Init(GPIOC, &GPIO_InitStructure);
       
        //UART4配置 N 8 1
        USART_InitStructure.USART_BaudRate = BaudRate; //波特率
        USART_InitStructure.USART_WordLength = USART_WordLength_8b; //字長(zhǎng)8位
        USART_InitStructure.USART_StopBits = USART_StopBits_1; //1位停止字節(jié)
        USART_InitStructure.USART_Parity = USART_Parity_No; //無(wú)奇偶校驗(yàn)
        USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None; //無(wú)流控制
        USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx; //打開Rx接收和Tx發(fā)送功能
        USART_Init(UART4 , &USART_InitStructure);
       
        //UART4 NVIC 配置
        NVIC_InitStructure.NVIC_IRQChannel = UART4_IRQn;
        NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=3 ;//搶占優(yōu)先級(jí)3
        NVIC_InitStructure.NVIC_IRQChannelSubPriority = 3;                //子優(yōu)先級(jí)3
        NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;                        //IRQ通道使能
        NVIC_Init(&NVIC_InitStructure);        //根據(jù)指定的參數(shù)初始化VIC寄存器
        USART_ClearFlag(UART4,USART_FLAG_TC);
        USART_ITConfig(UART4,USART_IT_RXNE,ENABLE);//配置串口接收非空中斷
       
        USART_Cmd(UART4,ENABLE);
}


void UART5_Config(u32 BaudRate)    //串口5初始化函數(shù)
{
        GPIO_InitTypeDef GPIO_InitStructure;
        USART_InitTypeDef USART_InitStructure;
        NVIC_InitTypeDef NVIC_InitStructure;
       
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO|RCC_APB2Periph_GPIOC|RCC_APB2Periph_GPIOD, ENABLE);
        RCC_APB1PeriphClockCmd(RCC_APB1Periph_UART5,ENABLE);
       
        //GPIO端口設(shè)置
        //UART5_TX   PC.12
        GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz; //輸出速度50MHz
        GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF_PP;   //推挽輸出模式 Out_PP
        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12;      //將UART4 的TX 配置為復(fù)用推挽輸出 AF_PP
        GPIO_Init(GPIOC, &GPIO_InitStructure);
       
        //將UART5 的RX 配置為復(fù)用浮空輸入 IN_FLOATING
        //UART5_RX          PD.2
        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2;
        GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IN_FLOATING; //浮空輸入 IN_FLOATING
        GPIO_Init(GPIOD, &GPIO_InitStructure);
       
       
        USART_InitStructure.USART_BaudRate = BaudRate; //波特率
        USART_InitStructure.USART_WordLength = USART_WordLength_8b; //字長(zhǎng)8位
        USART_InitStructure.USART_StopBits = USART_StopBits_1; //1位停止字節(jié)
        USART_InitStructure.USART_Parity = USART_Parity_No; //無(wú)奇偶校驗(yàn)
        USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None; //無(wú)流控制
        USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx; //打開Rx接收和Tx發(fā)送功能
       
        USART_Init(UART5 , &USART_InitStructure);
       
        /* Enable the UART5 Interrupt */
        NVIC_InitStructure.NVIC_IRQChannel = UART5_IRQn;
        NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=3 ;//搶占優(yōu)先級(jí)3
        NVIC_InitStructure.NVIC_IRQChannelSubPriority = 3;                //子優(yōu)先級(jí)3
        NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;                        //IRQ通道使能
        NVIC_Init(&NVIC_InitStructure);        //根據(jù)指定的參數(shù)初始化VIC寄存器
       
        USART_ClearFlag(UART5,USART_FLAG_TC);
        USART_ITConfig(UART5,USART_IT_RXNE,ENABLE);//配置串口接收非空中斷
       
        USART_Cmd(UART5,ENABLE);
}
/*******************************串口END***************************************/
//串口1中斷函數(shù)
void USART1_IRQHandler(void)                        //串口1中斷服務(wù)程序
{
        u8 res;
        if(USART_GetITStatus(USART1, USART_IT_RXNE) != RESET)  //接收中斷(接收到的數(shù)據(jù)必須是0x0d 0x0a結(jié)尾)
        {
                res =USART_ReceiveData(USART1);        //讀取接收到的數(shù)據(jù)
                USART_SendData(USART1,res);
        }
}

//串口2中斷函數(shù)
void USART2_IRQHandler(void)
{
        u8 res;
        if(USART_GetITStatus(USART2, USART_IT_RXNE) != RESET) //接收到數(shù)據(jù)
        {         
                res =USART_ReceiveData(USART2);         //讀取接收到的數(shù)據(jù)
                USART_SendData(USART2,res);
        }
}

//串口3中斷函數(shù)
void USART3_IRQHandler(void)
{
        u8 res;
        if(USART_GetITStatus(USART3, USART_IT_RXNE) != RESET) //接收到數(shù)據(jù)
        {         
                res =USART_ReceiveData(USART3);         //讀取接收到的數(shù)據(jù)
                USART_SendData(USART3,res);
        }
}

//串口4中斷函數(shù)
void UART4_IRQHandler(void)
{
        u8 res;
        if(USART_GetITStatus(UART4, USART_IT_RXNE) != RESET) //接收到數(shù)據(jù)
        {         
                res =USART_ReceiveData(UART4);         //讀取接收到的數(shù)據(jù)
                USART_SendData(UART4,res);
        }
}

//串口5中斷函數(shù)
void UART5_IRQHandler(void)
{
        u8 res;
        if(USART_GetITStatus(UART5, USART_IT_RXNE) != RESET) //接收到數(shù)據(jù)
        {         
                res =USART_ReceiveData(UART5);         //讀取接收到的數(shù)據(jù)
                USART_SendData(UART5,res);
        }
}
//注:中斷函數(shù)名是固定的,不能更改(可在啟動(dòng)文件里更改,不建議更改),
//串口使用方法:想要哪個(gè)串口就初使化哪個(gè)串口,然后用發(fā)送函數(shù)就可以發(fā)送數(shù)據(jù),當(dāng)然,這里提供了printf重定向了,你也可以直接用printf函數(shù)發(fā)送。
//使用示例:
int main(void)
{
   USART1_Config(9600);  //初使化串口1,波特率為9600
  while(1)
  {
     printf("你好! \r\n");  //\r\n是回車符
  }
}
//接收串口數(shù)據(jù)在串口1中斷函數(shù)里接收,和51一樣。
//串口1  引腳: PA9: TXD  PA10:RXD
//串口2  引腳: PA2: TXD  PA3: RXD
//串口3  引腳: PB10:TXD  PB11:RXD
//串口4  引腳: PC10:TXD  PC11:RXD
//串口5  引腳: PC12:TXD  PD2: RXD

//ps:stm32只有串口1支持串口下載燒寫程序,所以我們一般都用串口1和電腦互動(dòng)

評(píng)分

參與人數(shù) 1黑幣 +8 收起 理由
初學(xué)者204 + 8 很給力!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

8#
ID:142059 發(fā)表于 2018-7-10 10:36 | 只看該作者
其實(shí)不難,你只需要知道stm32的中斷函數(shù)是固定的就行,不能修改(我才不會(huì)跟說(shuō)在啟動(dòng)文件里修改能修改)

007、串口例程(支持串口1、2、3、4、5).zip

2.77 MB, 下載次數(shù): 14

回復(fù)

使用道具 舉報(bào)

9#
ID:364810 發(fā)表于 2018-7-10 15:29 | 只看該作者
這有原子哥的例程

串口實(shí)驗(yàn).rar

1.42 MB, 下載次數(shù): 9

串口通信

回復(fù)

使用道具 舉報(bào)

10#
ID:368940 發(fā)表于 2018-7-11 10:12 | 只看該作者
建議網(wǎng)上查找原子、硬石等開發(fā)板的源碼,也可以購(gòu)買一塊,按照里面的例程來(lái)學(xué)習(xí),這樣學(xué)的比較快
回復(fù)

使用道具 舉報(bào)

11#
ID:302777 發(fā)表于 2021-2-6 18:02 | 只看該作者
Angle145 發(fā)表于 2018-7-10 10:26
/*************************USART串口*****************************************/
#define PRINTF_COM    ...

為什么就串口2進(jìn)行了復(fù)位串口,是漏了還是影響不大
回復(fù)

使用道具 舉報(bào)

12#
ID:883242 發(fā)表于 2021-2-7 17:03 | 只看該作者
庫(kù)例程寫的很清楚啊,Ctrl-C、Ctrl-V就可以了。以后鍵盤別的鍵都可以去掉,保留Ctrl、C、V三個(gè)鍵就可以了。
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 国产精品久久久久久久久久 | 欧美一区2区三区4区公司二百 | 成人久久久久 | 久久精品久久久 | 国产精品视频一区二区三 | 久久午夜精品福利一区二区 | 亚洲一区在线日韩在线深爱 | 国产高清视频在线观看 | 99久久免费精品国产免费高清 | 成人 在线 | 亚洲天堂二区 | 久久夜色精品国产 | 免费h在线 | 中文av字幕 | 亚洲欧美日韩国产综合 | 91久久夜色精品国产网站 | 久草在线在线精品观看 | 青春草在线 | 亚洲一区二区精品视频在线观看 | 久久丝袜 | 99视频入口 | 美国一级片在线观看 | 欧美日韩亚洲国产综合 | 午夜丰满寂寞少妇精品 | www国产成人免费观看视频,深夜成人网 | 欧美亚洲第一区 | 黄视频免费观看 | 久久国产精品免费一区二区三区 | 国产精品精品久久久 | 国产伦精品一区二区三区视频金莲 | 91免费在线 | 亚洲视频一区二区三区 | 欧美黄色一区 | 国产精品日韩欧美一区二区三区 | 亚洲三区在线观看 | 一级做受毛片免费大片 | 殴美黄色录像 | 日韩精品一区二区三区视频播放 | 黄色一级免费 | 成人高清在线 | 国产97色 |