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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 26175|回復: 39
打印 上一主題 下一主題
收起左側

基于STM32虛擬示波器的制作

  [復制鏈接]
跳轉到指定樓層
樓主
基于STM32虛擬示波器,有興趣可以看看,附件里面包含全部的制作資料


1.  分析儀功能介紹

    以“低成本和高性能”為設計思想,借助虛擬儀器的概念和高速的數字信號處理算法將

傳統的函數發生器、示波器、數據記錄儀、頻率計、譜分析儀以及濾波器設計和仿真等功能

高度集成、統一平臺方便使用。

    軟件環境支持聲卡、USB          模塊和虛擬仿真,三種模式。聲卡模式,可以借助電腦的聲

卡來完成對音頻范圍內信號的分析和處理;USB                    模塊,可以完成對帶寬允許內的信號的分

析和處理;其中演示模式采用軟件模擬來實現所有的功能,便于教學和理論的演示。

    公開軟件通信協議,可以按照協議將自己的硬件加入我們的軟件環境,使用所有的分析

功能。


函數發生器

    支持產生“正弦波”、“三角波”、“矩形波”、“上鋸齒波”、“下鋸齒波”、“白噪聲”和“合

成波形”,并提供峰值、頻率、輸出相位差的調整功能。

    波形文件輸出,可以支持“正弦波”、“三角波”、“矩形波”、“上鋸齒波”、“下鋸齒波”、

“白噪聲”和“合成波形”,提供峰值、頻率、輸出相位差的調整功能,支持以wav、txt、

hex 和mif 文件形式的輸出。



示波器/譜分析儀

    可以工作在“聲卡”、“USB          模塊”、“仿真”和“串口捕獲”四種模式。支持任意多畫

面的同時顯示,便于波形的多樣分析;支持輸入波形硬件和軟件觸發;支持輸入波形的插值

和等效采樣;支持輸入波形的“相加”、“相減”和“相乘”合成;支持對輸入波形加“矩形

窗”、“三角窗”、“海明窗”、“漢寧窗”和“布萊克曼窗”;支持對輸入波形的濾波處理; 支

持對輸入波形的“李薩茹圖形”、“幅頻”、“相頻”、“對數幅頻”、“自功率譜”、“對數自功率

譜”、“自相關”和“互相關”的分析。





說明:本協議中B 代表 bit,即8B=1 字節

1.重啟序列  

   改序列用于整個下位機的重啟,收到該序列后,需重新握手,其過程如下:  

   PC ---------->0xff,0xff,0xff,0xff,0xff,0x11,0x22,0x33,0x44,0x55

                         0xff,0xff,0xff,0xff,0xff,0x11,0x22,0x33,0x44,0x55<-------------CE

2.握手  

   握手用于上位機和下位機的相互識別過程。其過程如下:  

    PC ---------->XX XX XX XX XX (5 個隨機數)

                                  XX XX XX XX XX    (5 個隨機數)  <-------------CE

    PC---------->XX XX XX XX XX XX XX XX XX XX   (上面10 個隨機數)

                                   版本信息                      <-------------CE

    PC---------->             AA

                              (握手成功)            55                <-------------CE



    版本信息(32B):  

    static const unsigned char banben[]=  

          {  ‘Y’,’i’,’X’,’i’,’n’,’g’,’d’,’i’,’a’,’n’,’z’,‘i’, 0, 0, 0, 0,  

             ‘S’,’t’,’u‘,’-’,’0’ ‘.’, ‘1’, 0, 0, 0, 0, 0, 0, 0, 0, 0,  

           };  



3.控制  

    控制協議用于PC 控制下位機工作和獲得一些必要的信息。包含兩種格式,第一種:“PC

控制特定通道”用于 PC 控制通道 ID 指定的下位機通道;第二種:“PC 控制所有通道”用

于 PC  控制下位機中支持的所有通道。例如發送 0x01,0x01,0x00 表示開啟通道 0x01;發送

0xff,0x12,0x00 表示要求下位機的所有通道開始采集數據,并上傳。

    需要說明的是,假如你有兩個通道,則這兩個通道的ID,默認為0x01 和0x02。PC 就

用這兩個ID 兩控制下位機響應的通道。



3.1 控制信息格式

     PC 控制特定通道:
      通道ID(8B)         控制碼(8B)          控制信息(32B)        附加信息

     PC 控制所有通道:

       通道ID   (0xFF)    控制碼(8B)         控制信息(32B)         附加信息

3.2 控制碼

    開啟                       控制碼  01

    關閉                       控制碼  10

    通道數                      控制碼  02

    采樣位數                     控制碼  04

    采樣符號                     控制碼  08

    采集并上傳數據                  控制碼  12

3.3 CE 應答信息格式:

      通道ID(8B)           應答碼(8B)      應答信息(32B)          附加信息

    成功                   應答碼  01

    失敗                   應答碼  10

例如:

    通道數 控制碼 02       回復信息:        0xFF(8B)       0x01(8B)     0x00000002(32B)

                                通道ID:所有通道       應答碼:成功         應答信息:2 個通道

    采樣位數 控制碼  04 回復信息:             0xFF(8B)       0x01(8B)     0x00000008(32B)

                                通道ID:所有通道       應答碼:成功         應答信息:8 位

    采樣符號 控制碼  08 回復信息: 0xFF(8B)                 0x01(8B)     0x00000001(32B)

                         通道ID:所有通道      應答碼:成功      應答信息:有符號 1,無符號0

4.數據傳輸  

數據傳輸格式(CE---->PC)

通道數N(8B)     放大倍數  (N *32B)    偏置  (N *32B)    數據長度32B)        數據(n*8B)

    下位機傳輸采集數據的格式,通道數N 表示這次傳輸中的通道個數,N 個通道ID 的表

示后面的數據,各個通道的排列順序,放大倍數,表示這次數據 N  個通道的每個的放大倍

數是多少。數據長度表示后面有多少字節數據。


例如:

0x02       0x00 0x00 0x00 0x01 0x00 0x00 0x00 0x02 0x00 0x00 0x00 0x00

兩個通道        通道 0x01 放大 1 倍  通道 0x02 放大2 倍          通道 0x01 偏置

0x00 0x00 0x00 0x00 0x00 0x00 0x01 0x00

   通道 0x01 偏置           256 字節數據

    0x11          0xA3             0x12       0x43………

通道 0x01 數據  通道0x02 數據  通道 0x01 數據  通道0x02 數據

  1. /*
  2. * Copyright (c) 2010 儀星電子
  3. *
  4. * This program is free software; you can redistribute it and/or
  5. * modify it under the terms of the GNU General Public License
  6. * as published by the Free Software Foundation; either version 2
  7. * of the License, or (at your option) any later version.

  8. * This program is distributed in the hope that it will be useful,
  9. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  10. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  11. * GNU General Public License for more details.

  12. * You should have received a copy of the GNU General Public License
  13. * along with this program; if not, write to the Free Software
  14. * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
  15. */

  16. /*
  17. * 著作權所有(C) 2010 儀星電子
  18. *
  19. * 本程序為自由軟件;您可依據自由軟件基金會所發表的GNU通用公共授權條款規定,
  20. * 就本程序再為發布與/或修改;無論您依據的是本授權的第二版或(您自行選擇的)
  21. * 任一日后發行的版本。

  22. * 本程序是基于使用目的而加以發布,然而不負任何擔保責任;亦無對適售性或特定
  23. * 目的適用性所為的默示性擔保。詳情請參照GNU通用公共授權。

  24. * 您應已收到附隨于本程序的GNU通用公共授權的副本;如果沒有,請寫信至自由軟件
  25. * 基金會:59 Temple Place - Suite 330, Boston, Ma 02111-1307, USA。

  26. * Email yixingdianzi@126.com
  27. * Email/MSN yixingdianzi@hotmail.com
  28. * QQ 648887464
  29. */

  30. /******************** (C) COPYRIGHT 2009 STMicroelectronics ********************
  31. * File Name          : main.c
  32. * Author             : MCD Application Team
  33. * Version            : V3.1.0
  34. * Date               : 10/30/2009
  35. * Description        : Virtual Com Port Demo main file
  36. ********************************************************************************
  37. * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS
  38. * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME.
  39. * AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY DIRECT,
  40. * INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE
  41. * CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING
  42. * INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
  43. *******************************************************************************/

  44. /* Includes ------------------------------------------------------------------*/
  45. #include "stm32f10x.h"
  46. #include "stm32f10x_gpio.h"
  47. #include "usb_lib.h"
  48. #include "usb_desc.h"
  49. #include "usb_pwr.h"
  50. #include "qdmx_usb.h"
  51. #include "qdmx_adc.h"

  52. #define SEND 32

  53. /* Private typedef -----------------------------------------------------------*/
  54. /* Private define ------------------------------------------------------------*/
  55. /* Private macro -------------------------------------------------------------*/
  56. /* Private variables ---------------------------------------------------------*/
  57. /* Extern variables ----------------------------------------------------------*/
  58. extern __IO uint32_t count_in;
  59. extern uint8_t Controla_a;
  60. extern uint8_t Controla_b;

  61. /* Private function prototypes -----------------------------------------------*/
  62. /* Private functions ---------------------------------------------------------*/
  63. void Set_System(void);
  64. void Callback(uint8_t *p);
  65. void Delay(__IO uint32_t nCount);
  66. void GPIO_configure(void);                                       
  67. /*******************************************************************************
  68. * Function Name  : main.
  69. * Description    : Main routine.                                
  70. * Input          : None.
  71. * Output         : None.
  72. * Return         : None.
  73. *******************************************************************************/
  74. int main(void)
  75. {  
  76.         vu8 s;
  77.         /*設置系統時鐘*/
  78.         Set_System();
  79.         
  80.         /*初始化USB模塊*/  
  81.         Set_USBClock();
  82.         USB_Interrupts_Config();
  83.         USB_Init();
  84.         /*初始化AD模塊*/
  85.         m_adc_clk_config();
  86.           m_adc_gpio_config();
  87.           m_adc_Interrupts_Config();
  88.           m_adc_init();

  89.         /*初始化GPIO引腳作為放大控制引腳*/
  90.         GPIO_configure();
  91.                                           
  92.           count_in=0;
  93.         /*默認初始值為放大1倍*/
  94.         GPIO_ResetBits(GPIOA,GPIO_Pin_0);
  95.         GPIO_ResetBits(GPIOA,GPIO_Pin_1);
  96.         GPIO_ResetBits(GPIOA,GPIO_Pin_2);

  97.         GPIO_ResetBits(GPIOB,GPIO_Pin_12);
  98.         GPIO_ResetBits(GPIOB,GPIO_Pin_13);
  99.         GPIO_ResetBits(GPIOB,GPIO_Pin_14);

  100.           while (1)
  101.           {                 
  102.           }
  103. }

  104. void GPIO_configure(void)
  105. {
  106.         GPIO_InitTypeDef GPIO_InitStructure;

  107.         RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA , ENABLE);
  108.           RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB , ENABLE);
  109.         
  110.         RCC_AHBPeriphClockCmd(RCC_APB2Periph_GPIOA , ENABLE);
  111.         RCC_AHBPeriphClockCmd(RCC_APB2Periph_GPIOB , ENABLE);               

  112.           GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12 | GPIO_Pin_13 | GPIO_Pin_14;
  113.           GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
  114.         GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  115.           GPIO_Init(GPIOB, &GPIO_InitStructure);

  116.         
  117.         GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_2;
  118.           GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
  119.           GPIO_Init(GPIOA, &GPIO_InitStructure);
  120. }

  121. void Delay(__IO uint32_t nCount)
  122. {
  123.   for(; nCount != 0; nCount--);
  124. }


  125. void Callback(uint8_t *p)
  126. {
  127.         if (GetENDPOINT(ENDP1) & EP_DTOG_RX)
  128.         {
  129.                    FreeUserBuffer(ENDP1, EP_DBUF_IN);
  130.                    UserToPMABufferCopy((uint8_t*) p, ENDP1_TX1ADDR, SEND);
  131.                    SetEPDblBuf1Count(ENDP1,EP_DBUF_IN,SEND);
  132.         }
  133.         else
  134.         {
  135.                    FreeUserBuffer(ENDP1, EP_DBUF_IN);
  136.                    UserToPMABufferCopy((uint8_t*) p, ENDP1_TX0ADDR, SEND);
  137.                    SetEPDblBuf0Count(ENDP1,EP_DBUF_IN,SEND);
  138.         }
  139. }

  140. #ifdef USE_FULL_ASSERT
  141. /*******************************************************************************
  142. * Function Name  : assert_failed
  143. * Description    : Reports the name of the source file and the source line number
  144. *                  where the assert_param error has occurred.
  145. * Input          : - file: pointer to the source file name
  146. *                  - line: assert_param error line source number
  147. * Output         : None
  148. * Return         : None
  149. *******************************************************************************/
  150. void assert_failed(uint8_t* file, uint32_t line)
  151. {
  152.   /* User can add his own implementation to report the file name and line number,
  153.      ex: printf("Wrong parameters value: file %s on line %d\r\n", file, line) */

  154.   /* Infinite loop */
  155.   while (1)
  156.   {}
  157. }
  158. #endif

  159. /*******************************************************************************
  160. * Function Name  : Set_System
  161. * Description    : Configures Main system clocks & power
  162. * Input          : None.
  163. * Return         : None.
  164. *******************************************************************************/
  165. void Set_System(void)
  166. {
  167.   ErrorStatus HSEStartUpStatus;
  168.   /* SYSCLK, HCLK, PCLK2 and PCLK1 configuration -----------------------------*/   
  169.   /* RCC system reset(for debug purpose) */
  170.   RCC_DeInit();

  171.   /* Enable HSE */
  172.   RCC_HSEConfig(RCC_HSE_ON);

  173.   /* Wait till HSE is ready */
  174.   HSEStartUpStatus = RCC_WaitForHSEStartUp();

  175.   if (HSEStartUpStatus == SUCCESS)
  176.   {
  177.     /* Enable Prefetch Buffer */
  178.     FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);

  179.     /* Flash 2 wait state */
  180.     FLASH_SetLatency(FLASH_Latency_2);

  181.     /* HCLK = SYSCLK */
  182.     RCC_HCLKConfig(RCC_SYSCLK_Div1);
  183.   
  184.     /* PCLK2 = HCLK */
  185.     RCC_PCLK2Config(RCC_HCLK_Div1);

  186.     /* PCLK1 = HCLK/2 */
  187.     RCC_PCLK1Config(RCC_HCLK_Div2);

  188. #ifdef STM32F10X_CL
  189.     /* Configure PLLs *********************************************************/
  190.     /* PLL2 configuration: PLL2CLK = (HSE / 5) * 8 = 40 MHz */
  191.     RCC_PREDIV2Config(RCC_PREDIV2_Div5);
  192.     RCC_PLL2Config(RCC_PLL2Mul_8);

  193.     /* Enable PLL2 */
  194.     RCC_PLL2Cmd(ENABLE);

  195.     /* Wait till PLL2 is ready */
  196.     while (RCC_GetFlagStatus(RCC_FLAG_PLL2RDY) == RESET)
  197.     {}

  198.     /* PLL configuration: PLLCLK = (PLL2 / 5) * 9 = 72 MHz */
  199.     RCC_PREDIV1Config(RCC_PREDIV1_Source_PLL2, RCC_PREDIV1_Div5);
  200.     RCC_PLLConfig(RCC_PLLSource_PREDIV1, RCC_PLLMul_9);
  201. #else
  202.     /* PLLCLK = 8MHz * 9 = 72 MHz */
  203.     RCC_PLLConfig(RCC_PLLSource_HSE_Div1, RCC_PLLMul_9);
  204. #endif

  205.     /* Enable PLL */
  206.     RCC_PLLCmd(ENABLE);

  207.     /* Wait till PLL is ready */
  208.     while (RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET)
  209.     {
  210.     }

  211.     /* Select PLL as system clock source */
  212.     RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);

  213.     /* Wait till PLL is used as system clock source */
  214.     while(RCC_GetSYSCLKSource() != 0x08)
  215.     {
  216.     }
  217.   }
  218.   else
  219.   { /* If HSE fails to start-up, the application will have wrong clock configuration.
  220.        User can add here some code to deal with this error */   

  221.     /* Go to infinite loop */
  222.     while (1)
  223.     {
  224.     }
  225.   }

  226. …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼

資料下載:


STM32F103C8源工程.7z

236.57 KB, 下載次數: 316, 下載積分: 黑幣 -5

多功能虛擬信號分析儀.rar

1.47 MB, 下載次數: 223, 下載積分: 黑幣 -5

驅動.rar

2.26 KB, 下載次數: 186, 下載積分: 黑幣 -5

使用說明書.rar

1.06 MB, 下載次數: 192, 下載積分: 黑幣 -5

學習版協議.rar

113.39 KB, 下載次數: 176, 下載積分: 黑幣 -5

原理圖.rar

45.43 KB, 下載次數: 254, 下載積分: 黑幣 -5

評分

參與人數 4黑幣 +124 收起 理由
AAA_MCU + 18 很給力!
guoyiran + 5 很給力!
rebol + 1 很給力!
admin + 100 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏33 分享淘帖 頂1 踩
回復

使用道具 舉報

沙發
ID:232205 發表于 2017-12-14 11:40 | 只看該作者
好資料,51黑有你更精彩!!!
回復

使用道具 舉報

板凳
ID:223725 發表于 2017-12-15 14:18 | 只看該作者
全下了,慢慢學習
回復

使用道具 舉報

地板
ID:270223 發表于 2018-1-2 17:14 | 只看該作者
在那個原理圖中   數字部分電路有一個沒有芯片型號,那芯片型號是什么
回復

使用道具 舉報

5#
ID:270327 發表于 2018-1-2 18:54 | 只看該作者
STM32最高采樣的頻率能做到多少?
回復

使用道具 舉報

6#
ID:39808 發表于 2018-1-21 12:00 | 只看該作者
125du 發表于 2018-1-2 18:54
STM32最高采樣的頻率能做到多少?

1M,紫薯布丁
回復

使用道具 舉報

7#
ID:97068 發表于 2018-1-21 18:07 | 只看該作者
牛逼牛逼牛逼牛逼牛逼
回復

使用道具 舉報

8#
ID:97068 發表于 2018-1-21 18:08 | 只看該作者
STM32最高采樣的頻率也只能做到1M了
回復

使用道具 舉報

9#
ID:63312 發表于 2018-1-22 09:51 | 只看該作者
感謝樓主!
回復

使用道具 舉報

10#
ID:279445 發表于 2018-1-25 09:46 | 只看該作者
可以,很不錯
回復

使用道具 舉報

11#
ID:179958 發表于 2018-2-4 14:40 來自手機 | 只看該作者
這個666了,學習了
回復

使用道具 舉報

12#
ID:187029 發表于 2018-5-15 10:20 | 只看該作者
666,下載學習一下
回復

使用道具 舉報

13#
ID:145279 發表于 2018-7-29 16:06 | 只看該作者
沒發開始啊
回復

使用道具 舉報

14#
ID:377382 發表于 2018-8-24 14:35 | 只看該作者
非常好的 資料。。。謝謝、
回復

使用道具 舉報

15#
ID:186637 發表于 2018-10-19 22:03 | 只看該作者
謝謝分享!學習學習!
回復

使用道具 舉報

16#
ID:456386 發表于 2018-12-27 13:46 | 只看該作者
現在正在研究這個 借來用用
回復

使用道具 舉報

17#
ID:457555 發表于 2018-12-28 19:16 | 只看該作者
很齊全,謝謝樓主哈
回復

使用道具 舉報

18#
ID:468349 發表于 2019-1-15 10:11 | 只看該作者
現在正在研究這個 借來用用
回復

使用道具 舉報

19#
ID:399179 發表于 2019-1-16 16:08 來自手機 | 只看該作者
感覺好強大。
回復

使用道具 舉報

20#
ID:471926 發表于 2019-1-23 09:33 | 只看該作者
這個確實好東西,正在做這個項目,借來參考
回復

使用道具 舉報

21#
ID:196383 發表于 2019-3-18 08:16 | 只看該作者
想做個玩玩
回復

使用道具 舉報

22#
ID:441421 發表于 2019-3-23 14:16 | 只看該作者
協議不錯
回復

使用道具 舉報

23#
ID:482226 發表于 2019-4-7 15:37 | 只看該作者
好資料,51黑有你更精彩!!!
回復

使用道具 舉報

24#
ID:111676 發表于 2019-4-9 21:18 | 只看該作者
非常好的 資料
回復

使用道具 舉報

25#
ID:565822 發表于 2019-6-18 15:48 | 只看該作者
請問如何改放大倍數?默認是1
回復

使用道具 舉報

26#
ID:578547 發表于 2019-7-5 15:56 | 只看該作者
下載學習下!
回復

使用道具 舉報

27#
ID:33544 發表于 2019-7-15 08:45 | 只看該作者

666,下載學習一下
回復

使用道具 舉報

28#
ID:674237 發表于 2019-12-26 09:08 | 只看該作者
太厲害了
回復

使用道具 舉報

29#
ID:687983 發表于 2020-4-10 09:22 | 只看該作者
很好 , 很強大
回復

使用道具 舉報

30#
ID:726195 發表于 2020-4-10 13:25 | 只看該作者
以前做過一個類似的,有機會一起探討一下
回復

使用道具 舉報

31#
ID:726950 發表于 2020-4-17 10:25 | 只看該作者
可玩性很高啊
回復

使用道具 舉報

32#
ID:658700 發表于 2020-4-29 21:30 | 只看該作者
zhaowenmin 發表于 2018-1-21 18:08
STM32最高采樣的頻率也只能做到1M了

對啊,而且在這個頻率下,測得不準,根本當不了示波器
回復

使用道具 舉報

33#
ID:619787 發表于 2020-5-13 15:55 | 只看該作者
很齊全,謝謝樓主
回復

使用道具 舉報

34#
ID:342443 發表于 2021-5-14 11:13 | 只看該作者
是不是基于labview的
回復

使用道具 舉報

35#
ID:902479 發表于 2021-7-22 19:42 | 只看該作者
請問一下,原理圖中數字部分電路那有一個芯片沒有標上型號,請問那個是啥型號的芯片啊,謝謝。。。
回復

使用道具 舉報

36#
ID:97181 發表于 2021-11-21 06:04 | 只看該作者
hj2008ss 發表于 2021-7-22 19:42
請問一下,原理圖中數字部分電路那有一個芯片沒有標上型號,請問那個是啥型號的芯片啊,謝謝。。。

你想問的可能是一個DCDC電源模塊,+5v轉為-5v
回復

使用道具 舉報

37#
ID:977861 發表于 2021-11-25 12:45 | 只看該作者
好資料,51黑有你更精彩!收藏了
回復

使用道具 舉報

38#
ID:151108 發表于 2021-11-26 20:25 | 只看該作者
很有興趣,學習一下
回復

使用道具 舉報

39#
ID:122260 發表于 2021-11-30 10:43 | 只看該作者
做成功了嗎都正常不
回復

使用道具 舉報

40#
ID:97181 發表于 2021-11-30 20:59 | 只看該作者
沒有,網上查了一下,上位機下位機都有問題
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 亚洲免费视频网站 | 国产高清美女一级a毛片久久w | 视频三区 | 久久中文字幕av | 亚洲视频一区在线观看 | 91偷拍精品一区二区三区 | 69精品久久久久久 | 三a毛片| 91五月婷蜜桃综合 | 免费日韩av | 一级毛片免费视频观看 | 欧美日韩精品在线免费观看 | 精品无码三级在线观看视频 | 一区二区三区欧美大片 | 中文字幕 国产 | 精品一二区| 日韩在线观看精品 | 日韩另类| 久久久久久久久99精品 | 成人1区2区 | 亚洲免费视频在线观看 | 亚洲精品99 | 精品成人在线观看 | 91在线看 | 日韩一级精品视频在线观看 | 欧美日韩网站 | 亚洲免费观看视频网站 | 一本一道久久a久久精品综合 | 欧美在线 | 久久精品日产第一区二区三区 | 欧美日一区二区 | 欧美成人a | 亚洲最大的成人网 | 日日操操 | 中文字幕第十五页 | 欧美激情a∨在线视频播放 成人免费共享视频 | 欧美老妇交乱视频 | 久久久91精品国产一区二区三区 | 99精品视频一区二区三区 | 99久久精品免费看国产小宝寻花 | 成人黄色电影在线播放 |