標題: STM32數字示波器+詳細注釋+上位機程序+硬件 [打印本頁]
作者: 51hei大小 時間: 2016-6-17 12:25
標題: STM32數字示波器+詳細注釋+上位機程序+硬件
從朋友得知ST公司在搞活動,可以申請STM32F429的探索套件,作為窮學生一枚的我不免動了心。大二上學期參加完全國大學生電子設計競賽之后閑來無事,就自己做了一個數字示波器來作為學習STM32的實戰檢驗,前后花費了大概1個月的時間完成了初稿,之后又斷斷續續的完善我的示波器,并且為它編寫了上位機程序和制定了通信協議。使用了前端程控模擬電路和上層電路板,uCOS-II,uCGUI,FFT,SD,上位機等等,現在因為參加老師的項目研發也就暫時閑置了下來,之前就打算在各大論壇開源,但是一直沒有時間整理設計文檔,恰巧現在ST公司這個活動,所以就全部開源分享給大家吧,一起學習。下一步計劃重新設計模擬電路部分使用CPLD和高速AD實現更高的采樣率。
由于程序量比較大,所以在程序中我完成了大量的注釋,詳細的說明了具體的實現方法,其中的示波器原理和FFT原理請自己查閱相關教材。我個人認為最值得參考的就是如何制定一個效率較高的通信協議。我查閱了很多資料最后結合實際設計了一套通信協議,這套通信協議效傳輸速率理論最大可達16000bps,實際采用10666bps速率傳輸。協議的編碼、解碼算法的詳細說明附在附件中。隨著程序量的增加,F103也漸漸感到比較吃力了,其中FFT的運算就是典型代表,也希望借此機會申請到F429帶DSP指令的MCU來進一步提高示波器的性能。
限于目前的知識水平,這套示波器是實踐大于理論的產物,其中很多設計存在先天的不足,以后會繼續改進,向更高性能邁進。
設計指標:
主控: STM32F103ZET6
液晶屏: 4.3寸TFT480×272 65K彩色LCD顯示屏 FSMC
AD: 12位1MHz采樣率
最高實時取樣率: 1MSa/s 12Bits
取樣緩沖器深度: 5K
垂直靈敏度: 5V,1V,500mV,200mV,100mV,50mV,20mV,10mV;
水平時基范圍:2S,1S,500mS,200mS,100mS,50mS,20mS,10mS,5mS,2mS,1mS,500uS,200uS,100uS,50uS,20uS,10uS,5uS,2uS,1uS
輸入阻抗: ≥1MΩ
最高輸入電壓: 30Vpp
耦合方式: AC/DC
觸發功能: 實現自動、常規、單次觸發方式 ,上升或下降邊沿觸發
參數計算: 頻率、周期、占空比、交流峰-峰值、平均值、光標追蹤顯示
RUN/STOP
功能:
1、波形發生器:使用STM32一路DA實現正弦,三角波,方波,白噪聲輸出。 任意一種波形幅值在0-3.3V任意可調、頻率在一定范圍任意可調、方波占空比可調。調節選項可以通過觸摸屏完成設置。
2、SD卡存儲: SD卡波形存儲輸出,能夠對當前屏幕截屏,以JPG格式存儲在SD卡上。能夠存儲1S內的波形數據,可以隨時調用查看。
3、數據傳輸: 用C#編寫上位機,通過串口完成對下位機的控制。(1)實現STOP/RUN功能(2)輸出波形電壓、時間參數(3)控制截屏(4)控制波形發生器(5)控制完成FFT(6)波形的存儲和顯示
4、圖形接口: UCGUI
2、水平掃速: 250 ns*、500ns、1μs、5 μs、10μs、50μs、500 μs、5ms 、50ms
3、垂直電壓靈敏度:10mV/div, 20mV/div, 50mV/div, 0.1V/div, 0,2V/div, 0.5V/div, 1V/div,
2V/div, 5V/div
4、被測信號的各種參數屏幕顯示,包括頻率、電壓峰峰值等。
2ace7e0ddc324f941d9408346ec00132.jpg (112.03 KB, 下載次數: 156)
下載附件
2016-6-17 12:37 上傳
這是上位機的程序
283ab5e87d25cbcf94b01e8a67edf1d1.jpg (98.83 KB, 下載次數: 148)
下載附件
2016-6-17 12:37 上傳
測試時候的照片
5caa7c5180b9d07da08fdd4720af8e16.jpg (72.65 KB, 下載次數: 155)
下載附件
2016-6-17 12:37 上傳
測試正弦波
6a282026dbe5eef24b3d4f0a0b9bb0b9.jpg (74.91 KB, 下載次數: 150)
下載附件
2016-6-17 12:37 上傳
PCB
38df39b7072588877cddff5747c96396.jpg (114.1 KB, 下載次數: 142)
下載附件
2016-6-17 12:37 上傳
模擬電路板
f93d3d2dcc9d6dc234d9120282789661.jpg (24.15 KB, 下載次數: 164)
下載附件
2016-6-17 12:37 上傳
側面的照片
d9bb84e9a582c8c5fb3b915fefd3b0c6.jpg (25 KB, 下載次數: 161)
下載附件
2016-6-17 12:37 上傳
源代碼的注釋
714aa843c402eb09d8147165a6d1cf88.jpg (88.43 KB, 下載次數: 162)
下載附件
2016-6-17 12:37 上傳
|
7094ac099101946915b747d6b0cceec3.jpg (16.89 KB, 下載次數: 167)
下載附件
2016-6-17 12:37 上傳
- /*---------------------------------------------------------
- ADC配置驅動程序
- 說明: 示波器AD采樣配置,經過初步測試,AD采樣速率為1.286M
- 正弦波最大不失真測量頻率300kHz
- 三角波最大不失真測量頻率150kHz
- 矩形波最大不失真測量頻率100kHz
- 時間: 2013年11月19日
- ---------------------------------------------------------*/
- #include "stm32f10x.h"
- #include "adc.h"
- #include "oscilloscope.h"
- #include "ucos_ii.h"
- #include "tft_api.h"
- /*-----------------------------------------
- 聲明變量
- ------------------------------------------*/
- extern WaveType WaveInfo;
- extern WaveMode WaveCtrl;
- volatile u16 ADCConvertedValue[SAMPDEPTH];//AD轉換緩沖區,占用RAM 0.8KB
- /*-----------------------------------------
- ADC1端口初始化
- ------------------------------------------*/
- void ADC1_GPIO_Init(void)
- {
- GPIO_InitTypeDef IO_Init;
- RCC_AHBPeriphClockCmd(RCC_AHBPeriph_DMA1,ENABLE);
- RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1 | RCC_APB2Periph_GPIOC,ENABLE);
- //C1模擬輸入
- IO_Init.GPIO_Pin = GPIO_Pin_1;
- IO_Init.GPIO_Mode = GPIO_Mode_AIN;
- GPIO_Init(GPIOC,&IO_Init);
- }
- /* #define ADC1_DR_Address ((unsigned int)0x40012400+0x4c) */
- /* unsigned short int ADC1_DMA_Value; */
- /*--------------------------------------------------
- 函數說明:配置ADC1完成AD采集,是本示波器最核心的部分.
- 配置方案:ADC1由TIM3提供的觸發事件進行觸發AD轉換,控
- 制TIM3的速率就可以完成采樣率的改變.同時采
- 用DMA完成數據傳輸,注入通道1完成內部溫度傳
- 感器AD采集.
- --------------------------------------------------*/
- void ADC1_Mode_Config(void)
- {
- //配置DMA
- DMA_InitTypeDef DMA_csh;
- ADC_InitTypeDef ADC_csh;
- TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
- NVIC_InitTypeDef NVIC_InitStructure;
- DMA_DeInit(DMA1_Channel1); //DMA復位,通道1
- DMA_csh.DMA_PeripheralBaseAddr = ADC1_DR_Address; //ADC1地址
- DMA_csh.DMA_MemoryBaseAddr = (unsigned int)ADCConvertedValue; //內存地址
- DMA_csh.DMA_DIR = DMA_DIR_PeripheralSRC;
- DMA_csh.DMA_BufferSize = SAMPDEPTH; //緩沖大小為采樣深度
- DMA_csh.DMA_PeripheralInc = DMA_PeripheralInc_Disable; //外設地址固定
- DMA_csh.DMA_MemoryInc = DMA_MemoryInc_Enable; //內存地址自增
- DMA_csh.DMA_PeripheralDataSize = DMA_PeripheralDataSize_HalfWord;
- DMA_csh.DMA_MemoryDataSize = DMA_MemoryDataSize_HalfWord;
- DMA_csh.DMA_Mode = DMA_Mode_Circular; //循環傳輸
- DMA_csh.DMA_Priority = DMA_Priority_High; //DMA優先級高
- DMA_csh.DMA_M2M = DMA_M2M_Disable;
- DMA_Init(DMA1_Channel1,&DMA_csh); //寫入DMA1配置參數
- DMA_Cmd(DMA1_Channel1,ENABLE); //使能DMA1通道1
- DMA_ITConfig(DMA1_Channel1,DMA_IT_TC,ENABLE); //使能DMA CH1中斷
- NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);
- NVIC_InitStructure.NVIC_IRQChannel = DMA1_Channel1_IRQn;
- NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1;
- NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1;
- NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
- NVIC_Init(&NVIC_InitStructure);
- //配置TIM3工作在18MHz,為AD提供觸發
- RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3,ENABLE);
- TIM_TimeBaseStructInit(&TIM_TimeBaseStructure);
- TIM_TimeBaseStructure.TIM_Period = 1;
- TIM_TimeBaseStructure.TIM_Prescaler = 99; //工作在18M,每格最大值時,不至于溢出
- TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1;
- TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;
- TIM_TimeBaseInit(TIM3,&TIM_TimeBaseStructure);
- TIM_SelectOutputTrigger(TIM3,TIM_TRGOSource_Update); //使用TIM3事件更新作為ADC觸發
-
- //配置ADC
- ADC_csh.ADC_Mode = ADC_Mode_Independent; //獨立ADC模式
- ADC_csh.ADC_ScanConvMode = DISABLE; //關閉掃描模式
- ADC_csh.ADC_ContinuousConvMode = DISABLE; //連續AD轉換開啟
- ADC_csh.ADC_ExternalTrigConv = ADC_ExternalTrigConv_T3_TRGO; //由TIM3提供的觸發事件進行觸發AD轉換
- ADC_csh.ADC_DataAlign = ADC_DataAlign_Right; //數據右對齊
- ADC_csh.ADC_NbrOfChannel = 1; //要轉換的通道數目1
- ADC_Init(ADC1,&ADC_csh); //寫入ADC1配置參數
- ADC_RegularChannelConfig(ADC1,ADC_Channel_11,1,ADC_SampleTime_1Cycles5);//采樣速率1M
- ADC_DMACmd(ADC1,ENABLE); //使能ADC1 DMA
- ADC_ExternalTrigConvCmd(ADC1,ENABLE); //打開ADC1外部觸發
-
- ADC_InjectedChannelConfig(ADC1,ADC_Channel_16,1,ADC_SampleTime_239Cycles5); //配置ADC1通道16為注入通道1
- ADC_ExternalTrigInjectedConvConfig(ADC1,ADC_ExternalTrigInjecConv_None); //軟件觸發注入通道的轉換
- ADC_TempSensorVrefintCmd(ENABLE); //使能溫度傳感器
- ADC_Cmd(ADC1,ENABLE); //使能ADC1
- ADC_ResetCalibration(ADC1); //復位校準寄存器
- while(ADC_GetResetCalibrationStatus(ADC1)); //等待校準寄存器復位完成
- ADC_StartCalibration(ADC1); //開始校準
- while(ADC_GetCalibrationStatus(ADC1)); //等待校準完成
- TIM_Cmd(TIM3,ENABLE);
- }
- /*-----------------------------------------
- 函數說明:通過注入通道1轉換內部溫度傳感器
- AD值,讀取10次有效數據取平均返回
- ------------------------------------------*/
- u16 GetTempSensor(void)
- {
- u16 temp=0,i,k=0;
- for(i=0; i<10; )
- {
- ADC_SoftwareStartInjectedConvCmd(ADC1,ENABLE); //軟件觸發注入通道的轉換
- k = (0x6EE - ADC_GetInjectedConversionValue(ADC1,ADC_InjectedChannel_1)) / 0x05 + 25;
- if(k>0 && k<100)
- {
- temp += k;
- i++;
- }
- }
- temp /= 10;
- return temp;
- }
- /*-----------------------------------------
- 函數說明:ADC1初始化
- ------------------------------------------*/
- void ADC1_Init(void)
- {
- ADC1_GPIO_Init();
- ADC1_Mode_Config();
- }
- /*-----------------------------------------
- 函數說明:ADC傳輸DMA通道1中斷服務程序
- DMA把AD值傳輸到緩沖區完成后關閉定
- 時器3(作為觸發AD轉換的定時器)同時
- 置更新完成標志位為1,開定時器3在應
- 用中開啟.
- ------------------------------------------*/
- void DMA1_Channel1_IRQHandler()
- {
- OSIntNesting++;
- DMA_ClearFlag(DMA1_FLAG_TC1); //清除DMA傳輸完成中斷
- TIM_Cmd(TIM3,DISABLE); //關閉TIM3
- WaveCtrl.UpdatTrue = 1; //已經完成一次波形FIFO,可以批量讀出數據
- OSIntExit();
- }
- /*-----------------------------------------
- 函數說明:擦除AD緩沖區
- ------------------------------------------*/
- void Earse_AD_FIFO(void)
- {
- uint32_t i;
- for(i=0; i<sampdepth; i++)
- {
- ADCConvertedValue[i] = 0;
- }
- }
復制代碼
- /*------------------------------------------------------------------------------------
- STM32示波器
- 硬件平臺:
- 主控器: STM32F103ZET6 64K RAM 512K ROM
- 屏幕器: SSD1963
- 分辨率: 480x272 16位色
- 觸摸屏: TSC2046
- 模擬電路: OP - TL084
- OP - u741
- SW - CD4051
- CMP - LM311
- PWR - LM7805
- - LM7905
- - MC34063
- - AMS1117-3.3
- DRI - ULN2003
- 繼電器:信號繼電器
- 電源: DC +12V
- 軟件平臺:
- 開發環境: RealView MDK-ARM uVision4.10
- C編譯器 : ARMCC
- ASM編譯器:ARMASM
- 連接器: ARMLINK
- 實時內核: uC/OS-II 2.90實時操作系統
- GUI內核 : uC/GUI 3.90圖形用戶接口
- 底層驅動: 各個外設驅動程序
-
- ROM Size = Code + RO-data +RW-data
- RAM Size = RW-data + ZI-data
- Program Size: Code=56024 RO-data=8272 RW-data=256 ZI-data=29912
-
- 時間: 2013年11月9日 BoX編寫于大二上學期
-
- 版本: V1.0 - 2013/11/9
- V1.1 - 2014/2/8
- V3.0 - 2014/2/19
- -------------------------------------------------------------------------------------*/
- #include "stm32f10x.h"
- #include "ucos_ii.h"
- #include "app.h"
- #include "GUI.h"
- #include "usart1.h"
- #include "pincfg.h"
- #include "delay.h"
- #include "tft_api.h"
- #include "dac.h"
- #include "adc.h"
- #include "iwdg.h"
- #include "timer.h"
- #include "EXTI.H"
- #include "oscilloscope.h"
- #include "indkey.h"
- #include "tsc2046.h"
- #include "task_rtc.h"
- #include "task_gui.h"
- #include "task_sd.h"
- /*-----------------------------------------
- 聲明起始任務棧
- ------------------------------------------*/
- OS_STK Task_Start_Stk[TASK_START_STK_SIZE];
- /*-----------------------------------------
- 因為涉及到對共享資源的訪問,創建互斥信號量
- ------------------------------------------*/
- OS_EVENT *LCD_Buffer_MUTEX;
- OS_EVENT *USART_Buffer_MUTEX;
- OS_EVENT *SDtoRAM_Buffer_MUTEX;
- /*-----------------------------------------
- 主 函 數
- ------------------------------------------*/
- int main(void)
- {
- INT8U err;
- SystemInit(); //初始化RCC時鐘
- OSInit();
-
- LCD_Buffer_MUTEX = OSMutexCreate(4,&err); //創建3個共享資源互斥信號量
- USART_Buffer_MUTEX = OSMutexCreate(4,&err);
- SDtoRAM_Buffer_MUTEX = OSMutexCreate(4,&err);
-
- OSTaskCreate(Task_Start,(void *)0,&Task_Start_Stk[TASK_START_STK_SIZE-1],TASK_START_PRIO); //起始任務
-
- OSStart();
- }
- /*-------------------------------------------------------------------------------
- 函數功能:初始化各種外設
- 說 明:因為跑操作系統,所以外設的初始化應該放在操作系統的初始任務中完成,不能
- 在while(1)循環外部完成外設的初始化工作,否則操作系統可能無法啟動.
- 本函數在app.c中被調用
- -------------------------------------------------------------------------------*/
- void BSP_Init(void)
- {
- OS_CPU_SR cpu_sr = 0u;
- OS_ENTER_CRITICAL();
- DelayInit(); //初始化延時
- PinCfg(); //外部器件控制配置
- FSMC_LCD_Init(); //FSMC總線配置
- GUI_Init(); //初始化UCGUI界面
- TSC2046_Config(); //初始化觸摸控制器
- USART1_Config(); //初始化串口
- DAC_Config(); //初始化DAC1
- ADC1_Init(); //初始化ADC1
- EXTI_Config(); //初始化外部中斷
- Key_EXTI_Config(); //初始化按鍵中斷
- TIM5_Config(1999,71); //TIM5以1MHz頻率計數,每2ms溢出中斷
- // TIM4_Config(59999,71); //TIM4以1MHz頻率計數,每60ms溢出中斷
- RTC_Init(); //初始化RTC
- // SD_Init();
- JDQ_ACDC = 1; //交流耦合
- ManualGainScan(3); //調試用
- IWDG_Init(4,625); //喂狗時間為1000ms
- OS_EXIT_CRITICAL();
- }
復制代碼
由于完整程序包較大,完整程序包可到百度網盤下載,下載鏈接在附件里
源碼程序包可直接點擊附件下載
STM32示波器源代碼.zip
(3.4 MB, 下載次數: 683)
2016-6-17 12:25 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
作者: admin 時間: 2016-8-14 14:49
51黑有你更精彩!!!
作者: justtalk 時間: 2016-8-18 13:35
有分享精神必須贊。
作者: 飛翔的土豆 時間: 2016-8-19 12:36
多謝分享哦
作者: angelsrc123 時間: 2016-8-19 14:36
有分享精神必須贊。
作者: 淚珠兒 時間: 2016-8-19 18:48
樓主你的百度云鏈接失效了,可以給我發下你設計的詳細資料嗎?萬分感謝。
qq郵箱819534212@qq.com
作者: az_cc 時間: 2016-8-22 08:14
謝謝分享!
作者: at87c573 時間: 2016-9-20 09:33
版主厲害啊
作者: dmgy343 時間: 2016-11-14 15:51
好東西,收藏了
作者: dmgy343 時間: 2016-11-14 15:52
好東西收藏了
作者: mayao7 時間: 2016-11-17 10:38
51有你更精彩
作者: 邰夏留 時間: 2016-11-21 08:43
謝謝樓主分享,下載了就頂貼,養成良好的習慣,也方便新手學習。。
作者: ahljj 時間: 2017-1-28 00:14
版主厲害
作者: aliceqiu123 時間: 2017-2-7 14:00
感謝分享。
作者: 心若在 時間: 2017-3-11 11:02
學習一下
作者: zltwork 時間: 2017-3-14 17:49
好東西,謝謝
作者: zhanglu 時間: 2017-3-15 20:56
51有你更精彩
作者: 51jia 時間: 2017-4-4 01:04
感謝樓主分享,下來學習一下。
作者: 唐不是甜的 時間: 2017-4-14 22:44
想問一下大神們 如果用STM32F103RCT6這種不同型號 有差不多的單片機 需要改哪些東西啊?
作者: alai318 時間: 2017-4-15 09:23
牛啊

作者: 噯IC任性 時間: 2017-5-6 14:47
新人求教
作者: 田田園 時間: 2017-5-6 15:22
zhen ligai
作者: llyybb1 時間: 2017-5-8 10:33
非常好,真好參考一下

作者: 157369709502 時間: 2017-6-11 10:53
謝大神了
作者: fontex 時間: 2017-6-15 08:27
值得學習,謝謝!
作者: ln19970505 時間: 2017-6-20 21:20
感謝樓主 鏈接失效了
能補發一下嗎?
作者: 1911487838 時間: 2017-6-20 22:14
這有pcb電路圖嗎?
作者: zhenghaili101 時間: 2017-6-21 22:53
這個資料給力。其實,調理電路也特別重要
作者: zhnagrui95 時間: 2017-7-19 10:28
51黑有你更精彩!!!
作者: 596546 時間: 2017-11-14 17:19
51黑有你更精彩!!!
作者: longyo 時間: 2017-11-19 22:43
不錯 下來研究學習一下
作者: yinyq888 時間: 2018-1-17 16:13
學習學習
作者: zh123456 時間: 2018-1-21 16:25
看到警告就渾身不舒服,消除之后就清爽多了
ddd.jpg (185.85 KB, 下載次數: 113)
下載附件
2018-1-21 16:24 上傳
作者: 云涯舞袖 時間: 2018-5-23 09:26
k = (0x6EE - ADC_GetInjectedConversionValue(ADC1,ADC_InjectedChannel_1)) / 0x05 + 25;
能解釋一下這一句嗎?
作者: boo851011 時間: 2018-5-23 19:15
好資料
作者: zhaoqshan 時間: 2018-5-24 10:18
必須贊一個
作者: 13131901715 時間: 2018-5-25 19:52
下載后,代碼用keil打不開啊
作者: kaixin8318 時間: 2018-5-28 15:38
有沒有成品我想購買一套研究下
作者: happy82828 時間: 2018-5-29 21:27
謝謝分享!
作者: a1726947341 時間: 2018-5-31 22:15
樓主厲害了,謝謝樓主分享


作者: hogen408 時間: 2018-6-10 06:36
非常好的學習資料,可以引用其中的技術,百度網盤鏈接失效了,能重新發一下么?謝謝
作者: mike198300 時間: 2019-1-15 05:19
相當優秀!!!!樓主的分享正是我現在急需的!
作者: 2467933313 時間: 2019-6-9 17:48
多謝分享
作者: hbthgsli 時間: 2019-8-14 13:47
不錯 下來研究學習一下
作者: hbthgsli 時間: 2019-8-14 13:48
非常好的學習資料,可以引用其中的技術,百度網盤鏈接失效了,能重新發一下么?謝謝
作者: 強32學習小白 時間: 2019-8-14 21:24
真的厲害
作者: wtmkimmy 時間: 2019-8-28 11:08
感謝分享。
作者: dspmomo 時間: 2019-8-30 06:11
非常詳細的注釋,好文章
作者: liuhiong 時間: 2019-8-30 13:34
樓主:你好,能否將電路圖傳上來看看。
作者: kobeing2018 時間: 2019-10-15 16:51
調理電路也特別重要
作者: kobeing2018 時間: 2019-10-16 09:26
連接沒有失效,我剛下了
作者: feihangdan 時間: 2019-12-30 09:22
很不錯的資料哦!
作者: shiyang800 時間: 2019-12-30 10:55
2013年大二就有這樣的水平 ,贊
作者: 指路明燈 時間: 2020-5-4 17:30
51黑有你更精彩!!!
作者: kpsilence 時間: 2020-5-19 12:18
下下來看看,可以學習一下。
作者: qwerty_sz 時間: 2020-5-19 15:02
這資料不錯!!!
作者: a425623964 時間: 2020-5-22 23:42
謝謝分享,多謝!
作者: 嚴冬的雪 時間: 2020-5-28 21:55
謝謝分享
作者: haijenny 時間: 2020-5-30 15:54
沒有板的資料嗎?
作者: swustlx86 時間: 2020-6-1 02:05
好資料,51黑有你更精彩!!!
作者: wangyuedong7 時間: 2020-6-9 10:38
好東西
作者: 中恒電子asus 時間: 2020-6-9 23:36
膜拜的對象,相當牛
作者: 15285507312 時間: 2020-6-13 18:23
樓主這個分享可以滴,就是那個鏈接能否重新發一份
作者: htzsz 時間: 2020-6-15 19:56
謝謝樓主分享!
作者: hzd530 時間: 2020-6-16 10:30
樓主牛,很有參考價值,謝謝分享!
歡迎光臨 (http://www.zg4o1577.cn/bbs/) |
Powered by Discuz! X3.1 |
主站蜘蛛池模板:
欧美一级在线观看
|
国产精品自拍啪啪
|
精品精品
|
免费观看成人性生生活片
|
成人性视频免费网站
|
日韩精品不卡
|
91视频国产精品
|
亚洲日韩视频
|
国产h视频
|
日日日色|
国内精品免费久久久久软件老师
|
久久久久欧美
|
日韩欧美在线一区
|
日韩电影中文字幕
|
亚洲欧美日韩久久
|
日韩av一区二区在线观看
|
国产色婷婷精品综合在线播放
|
亚洲自拍偷拍视频
|
免费看一区二区三区
|
heyzo在线|
一区二区三区免费在线观看
|
国产一级一级毛片
|
日韩视频一区二区
|
久久久久久久久精
|
亚洲成在线观看
|
久久精品av麻豆的观看方式
|
97视频在线观看免费
|
一区二区三区四区在线视频
|
国产精品久久久久久久久久久免费看
|
欧美日高清
|
日本成人中文字幕在线观看
|
精品中文字幕一区二区三区
|
毛片免费看的
|
国产精品自拍视频网站
|
狠狠视频
|
日韩在线中文字幕
|
一a一片一级一片啪啪
|
久久精品国产免费看久久精品
|
成人免费视频观看视频
|
伊人免费网
|
精品一区二区三区在线播放
|