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

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

QQ登錄

只需一步,快速開始

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

STM32+UCOS+紅外控制+編碼為志高空調(diào)遙控器編碼

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:373829 發(fā)表于 2018-7-18 09:41 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
UCOS + 紅外控制+編碼為志高空調(diào)遙控器編碼

單片機(jī)源程序如下:
  1. #include "sys.h"
  2. #include "delay.h"
  3. #include "usart.h"
  4. #include "led.h"
  5. #include "lcd.h"
  6. #include "key.h"
  7. #include "IR_ENCODE.h"
  8. #include "pwm.h"
  9. #include "includes.h"
  10. #include "remote.h"
  11. #include "24cxx.h"
  12. #include "myiic.h"
  13. #include "touch.h"


  14. #define KEYMSG_Q_NUM        1        //按鍵消息隊(duì)列的數(shù)量
  15. #define RMOTEMSG_Q_NUM        1        //按鍵消息隊(duì)列的數(shù)量

  16. OS_Q KEY_Msg;                                //定義一個(gè)消息隊(duì)列,用于按鍵消息傳遞,模擬消息郵箱
  17. //OS_Q REMOTE_Msg;
  18. OS_SEM *REMOTE_Sem;
  19. //任務(wù)優(yōu)先級(jí)
  20. #define START_TASK_PRIO                3
  21. //任務(wù)堆棧大小       
  22. #define START_STK_SIZE                 128
  23. //任務(wù)控制塊
  24. OS_TCB StartTaskTCB;
  25. //任務(wù)堆棧       
  26. CPU_STK START_TASK_STK[START_STK_SIZE];
  27. //任務(wù)函數(shù)
  28. void start_task(void *p_arg);

  29. //任務(wù)優(yōu)先級(jí)
  30. #define TASK1_TASK_PRIO                5
  31. //任務(wù)堆棧大小       
  32. #define TASK1_STK_SIZE                 128
  33. //任務(wù)控制塊
  34. OS_TCB Task1_TaskTCB;
  35. //任務(wù)堆棧       
  36. CPU_STK TASK1_TASK_STK[TASK1_STK_SIZE];
  37. void task1_task(void *p_arg);


  38. //任務(wù)優(yōu)先級(jí)
  39. #define TASK2_TASK_PRIO                6
  40. //任務(wù)堆棧大小       
  41. #define TASK2_STK_SIZE                 128
  42. //任務(wù)控制塊
  43. OS_TCB Task2_TaskTCB;
  44. //任務(wù)堆棧       
  45. CPU_STK TASK2_TASK_STK[TASK2_STK_SIZE];
  46. void task2_task(void *p_arg);

  47. //任務(wù)優(yōu)先級(jí)
  48. #define TASK3_TASK_PRIO                4
  49. //任務(wù)堆棧大小       
  50. #define TASK3_STK_SIZE                 128
  51. //任務(wù)控制塊
  52. OS_TCB Task3_TaskTCB;
  53. //任務(wù)堆棧       
  54. CPU_STK TASK3_TASK_STK[TASK3_STK_SIZE];
  55. void task3_task(void *p_arg);

  56. //任務(wù)優(yōu)先級(jí)
  57. #define TASK4_TASK_PRIO                7
  58. //任務(wù)堆棧大小       
  59. #define TASK4_STK_SIZE                 128
  60. //任務(wù)控制塊
  61. OS_TCB Task4_TaskTCB;
  62. //任務(wù)堆棧       
  63. CPU_STK TASK4_TASK_STK[TASK4_STK_SIZE];
  64. void task4_task(void *p_arg);


  65. //u8 share_resource[30];   //共享資源區(qū)

  66. static u8 ucLCD_SW=1;
  67. //主函數(shù)
  68. int main(void)
  69. {
  70.         OS_ERR err;
  71.         u32 Timer3_Frq;
  72.         CPU_SR_ALLOC();
  73.        
  74.         delay_init();  //時(shí)鐘初始化
  75.         NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//中斷分組配置
  76.         uart_init(115200);   //串口初始化
  77.         LED_Init();         //LED初始化       
  78.         LCD_Init();                        //LCD初始化       
  79.         KEY_Init();                        //按鍵初始化
  80.         tp_dev.init();
  81.         Timer3_Frq=38500;
  82.         PWM_Freq_Set(Timer3_Frq); //38KHz
  83.         Remote_Init();            //初始化紅外接收
  84.         POINT_COLOR = RED;
  85.         LCD_Clear(LIGHTBLUE);


  86.         OSInit(&err);                    //初始化UCOSIII
  87.         OS_CRITICAL_ENTER();        //進(jìn)入臨界區(qū)                         
  88.         //創(chuàng)建開始任務(wù)
  89.         OSTaskCreate((OS_TCB         * )&StartTaskTCB,                //任務(wù)控制塊
  90.                                  (CPU_CHAR        * )"start task",                 //任務(wù)名字
  91.                  (OS_TASK_PTR )start_task,                         //任務(wù)函數(shù)
  92.                  (void                * )0,                                        //傳遞給任務(wù)函數(shù)的參數(shù)
  93.                  (OS_PRIO          )START_TASK_PRIO,     //任務(wù)優(yōu)先級(jí)
  94.                  (CPU_STK   * )&START_TASK_STK[0],        //任務(wù)堆棧基地址
  95.                  (CPU_STK_SIZE)START_STK_SIZE/10,        //任務(wù)堆棧深度限位
  96.                  (CPU_STK_SIZE)START_STK_SIZE,                //任務(wù)堆棧大小
  97.                  (OS_MSG_QTY  )0,                                        //任務(wù)內(nèi)部消息隊(duì)列能夠接收的最大消息數(shù)目,為0時(shí)禁止接收消息
  98.                  (OS_TICK          )0,                                        //當(dāng)使能時(shí)間片輪轉(zhuǎn)時(shí)的時(shí)間片長(zhǎng)度,為0時(shí)為默認(rèn)長(zhǎng)度,
  99.                  (void           * )0,                                        //用戶補(bǔ)充的存儲(chǔ)區(qū)
  100.                  (OS_OPT      )OS_OPT_TASK_STK_CHK|OS_OPT_TASK_STK_CLR, //任務(wù)選項(xiàng)
  101.                  (OS_ERR         * )&err);                                //存放該函數(shù)錯(cuò)誤時(shí)的返回值
  102.         OS_CRITICAL_EXIT();        //退出臨界區(qū)         
  103.         OSStart(&err);      //開啟UCOSIII
  104. }


  105. //開始任務(wù)函數(shù)
  106. void start_task(void *p_arg)
  107. {
  108.         OS_ERR err;
  109.         CPU_SR_ALLOC();
  110.         p_arg = p_arg;
  111.        
  112.         CPU_Init();
  113. #if OS_CFG_STAT_TASK_EN > 0u
  114.    OSStatTaskCPUUsageInit(&err);          //統(tǒng)計(jì)任務(wù)               
  115. #endif
  116.        
  117. #ifdef CPU_CFG_INT_DIS_MEAS_EN                //如果使能了測(cè)量中斷關(guān)閉時(shí)間
  118.     CPU_IntDisMeasMaxCurReset();       
  119. #endif
  120.        
  121. #if        OS_CFG_SCHED_ROUND_ROBIN_EN  //當(dāng)使用時(shí)間片輪轉(zhuǎn)的時(shí)候
  122.          //使能時(shí)間片輪轉(zhuǎn)調(diào)度功能,時(shí)間片長(zhǎng)度為1個(gè)系統(tǒng)時(shí)鐘節(jié)拍,既1*5=5ms
  123.         OSSchedRoundRobinCfg(DEF_ENABLED,1,&err);  
  124. #endif               
  125.         CreateBtn();
  126.         OS_CRITICAL_ENTER();        //進(jìn)入臨界區(qū)
  127.                 //創(chuàng)建消息隊(duì)列KEY_Msg
  128.         OSQCreate ((OS_Q*                )&KEY_Msg,        //消息隊(duì)列
  129.                 (CPU_CHAR*        )"KEY Msg",        //消息隊(duì)列名稱
  130.                 (OS_MSG_QTY        )KEYMSG_Q_NUM,        //消息隊(duì)列長(zhǎng)度,這里設(shè)置為1
  131.                 (OS_ERR*        )&err);                //錯(cuò)誤碼
  132.                         //創(chuàng)建消息隊(duì)列KEY_Msg
  133.         OSSemCreate(        (OS_SEM*)REMOTE_Sem,//消息隊(duì)列長(zhǎng)度,這里設(shè)置為1
  134.                                                                 "Rmote Sem",
  135.                                                                 0,
  136.                 (OS_ERR*        )&err);                //錯(cuò)誤碼
  137.         //創(chuàng)建TASK1任務(wù)
  138.         OSTaskCreate((OS_TCB         * )&Task1_TaskTCB,               
  139.                                  (CPU_CHAR        * )"Task1 task",                
  140.                  (OS_TASK_PTR )task1_task,                        
  141.                  (void                * )0,                                       
  142.                  (OS_PRIO          )TASK1_TASK_PRIO,     
  143.                  (CPU_STK   * )&TASK1_TASK_STK[0],       
  144.                  (CPU_STK_SIZE)TASK1_STK_SIZE/10,       
  145.                  (CPU_STK_SIZE)TASK1_STK_SIZE,               
  146.                  (OS_MSG_QTY  )0,                                       
  147.                  (OS_TICK          )0,                                         
  148.                  (void           * )0,                                       
  149.                  (OS_OPT      )OS_OPT_TASK_STK_CHK|OS_OPT_TASK_STK_CLR,
  150.                  (OS_ERR         * )&err);                       
  151.         //創(chuàng)建TASK2任務(wù)
  152.         OSTaskCreate((OS_TCB         * )&Task2_TaskTCB,               
  153.                                  (CPU_CHAR        * )"Task2 task",                
  154.                  (OS_TASK_PTR )task2_task,                        
  155.                  (void                * )0,                                       
  156.                  (OS_PRIO          )TASK2_TASK_PRIO,     
  157.                  (CPU_STK   * )&TASK2_TASK_STK[0],       
  158.                  (CPU_STK_SIZE)TASK2_STK_SIZE/10,       
  159.                  (CPU_STK_SIZE)TASK2_STK_SIZE,               
  160.                  (OS_MSG_QTY  )0,                                       
  161.                  (OS_TICK          )0,                                         
  162.                  (void           * )0,                                       
  163.                  (OS_OPT      )OS_OPT_TASK_STK_CHK|OS_OPT_TASK_STK_CLR,
  164.                  (OS_ERR         * )&err);               
  165.         OSTaskCreate((OS_TCB         * )&Task3_TaskTCB,               
  166.                                  (CPU_CHAR        * )"Task3 task",                
  167.                  (OS_TASK_PTR )task3_task,                        
  168.                  (void                * )0,                                       
  169.                  (OS_PRIO          )TASK3_TASK_PRIO,     
  170.                  (CPU_STK   * )&TASK3_TASK_STK[0],       
  171.                  (CPU_STK_SIZE)TASK3_STK_SIZE/10,       
  172.                  (CPU_STK_SIZE)TASK3_STK_SIZE,               
  173.                  (OS_MSG_QTY  )0,                                       
  174.                  (OS_TICK          )0,                                         
  175.                  (void           * )0,                                       
  176.                  (OS_OPT      )OS_OPT_TASK_STK_CHK|OS_OPT_TASK_STK_CLR,
  177.                  (OS_ERR         * )&err);               
  178.         OSTaskCreate((OS_TCB         * )&Task4_TaskTCB,               
  179.                                  (CPU_CHAR        * )"Task4 task",                
  180.                  (OS_TASK_PTR )task4_task,                        
  181.                  (void                * )0,                                       
  182.                  (OS_PRIO          )TASK4_TASK_PRIO,     
  183.                  (CPU_STK   * )&TASK4_TASK_STK[0],       
  184.                  (CPU_STK_SIZE)TASK4_STK_SIZE/10,       
  185.                  (CPU_STK_SIZE)TASK4_STK_SIZE,               
  186.                  (OS_MSG_QTY  )0,                                       
  187.                  (OS_TICK          )0,                                         
  188.                  (void           * )0,                                       
  189.                  (OS_OPT      )OS_OPT_TASK_STK_CHK|OS_OPT_TASK_STK_CLR,
  190.                  (OS_ERR         * )&err);               
  191.                                                                  
  192.         OS_CRITICAL_EXIT();        //退出臨界區(qū)
  193.         OSTaskDel((OS_TCB*)0,&err);        //刪除start_task任務(wù)自身
  194. }

  195. //任務(wù)1的任務(wù)函數(shù)
  196. void task1_task(void *p_arg) //觸屏按鍵處理
  197. {
  198.         OS_ERR err;
  199.         u8 key;
  200.         u8 ucAirCndiSw=KEY0_PRES; //初始為開
  201.         u8 ucBtnId=-1;
  202.         u8 task1_str[]="First task Running!";
  203.         while(1)
  204.         {
  205.                 key = KEY_Scan(0);  //掃描按鍵
  206.                 if(key)
  207.                 {
  208.                         //發(fā)送消息
  209.                         OSQPost((OS_Q*                )&KEY_Msg,               
  210.                                         (void*                )&key,
  211.                                         (OS_MSG_SIZE)1,
  212.                                         (OS_OPT                )OS_OPT_POST_FIFO,
  213.                                         (OS_ERR*        )&err);
  214.                 }
  215.                 ucBtnId=BtnProcess();
  216.                 if(ucBtnId!= (u8)(-1) && ucLCD_SW) //屏幕開著時(shí)候
  217.                 {
  218.                         switch(ucBtnId)
  219.                         {
  220.                                 case 0:
  221.                                         if(stIrTime.StartTime>5)  //開始時(shí)間+
  222.                                                 stIrTime.StartTime-=5;
  223.                                                 LCD_ShowNum(145,12,stIrTime.StartTime,3,16);
  224.                                         break;
  225.                                 case 1:
  226.                                         if(stIrTime.StartTime<=115) //開始時(shí)間-
  227.                                                 stIrTime.StartTime+=5;
  228.                                                 LCD_ShowNum(145,12,stIrTime.StartTime,3,16);
  229.                                         break;
  230.                                 case 2:
  231.                                         if(stIrTime.OnTime>5)
  232.                                                 stIrTime.OnTime-=5;
  233.                                                 LCD_ShowNum(145,37,stIrTime.OnTime,3,16);
  234.                                         break;
  235.                                 case 3:
  236.                                         if(stIrTime.OnTime<=115)
  237.                                                 stIrTime.OnTime+=5;
  238.                                                 LCD_ShowNum(145,37,stIrTime.OnTime,3,16);
  239.                                         break;               
  240.                                 case 4:
  241.                                         if(stIrTime.OffTime>5)
  242.                                                 stIrTime.OffTime-=5;
  243.                                                 LCD_ShowNum(145,62,stIrTime.OffTime,3,16);
  244.                                         break;
  245.                                 case 5:
  246.                                         if(stIrTime.OffTime<=115)
  247.                                                 stIrTime.OffTime+=5;
  248.                                                 LCD_ShowNum(145,62,stIrTime.OffTime,3,16);
  249.                                         break;
  250.                                        
  251.                                 case 6:  //開關(guān)空調(diào)
  252.                                         if(KEY0_PRES== ucAirCndiSw)
  253.                                                 ucAirCndiSw= KEY1_PRES;
  254.                                         else if(KEY1_PRES== ucAirCndiSw)
  255.                                                 ucAirCndiSw= KEY0_PRES;
  256.                                                
  257.                                         OSQPost((OS_Q*                )&KEY_Msg,               
  258.                                         (void*                )&ucAirCndiSw,
  259.                                         (OS_MSG_SIZE)1,
  260.                                         (OS_OPT                )OS_OPT_POST_FIFO,
  261.                                         (OS_ERR*        )&err);
  262.                                         break;
  263.                                 case 7: //LCD 背光開關(guān)
  264.                                         ucLCD_SW=0;
  265.                                         LCD_DisplayOff();
  266.                                         OSTimeDlyHMSM(0,0,0,100,OS_OPT_TIME_PERIODIC,&err);   //延時(shí)1s
  267.                                         break;
  268.                                 default:        break;
  269.                         }
  270.                         //LCD_ShowNum(40,250,btn_id,2,16);
  271.                 }
  272.                 else if(DEF_PRESS_DOWN)
  273.                 {
  274.                         ucLCD_SW=1;
  275.                         LCD_DisplayOn();
  276.                         OSTimeDlyHMSM(0,0,0,100,OS_OPT_TIME_PERIODIC,&err);   //延時(shí)1s
  277.                 }
  278.                 OSTimeDlyHMSM(0,0,0,100,OS_OPT_TIME_PERIODIC,&err);   //延時(shí)1s
  279.         }
  280. }

  281. //任務(wù)2的任務(wù)函數(shù)
  282. void task2_task(void *p_arg) //自動(dòng)開關(guān)機(jī)
  283. {       
  284.         OS_ERR err;
  285.         OS_TICK Os_Tick;
  286.         u8 uc_ir_sendfg=0;
  287.         u32 ulDelayTime=0;
  288.         CPU_SR_ALLOC();
  289.         stIrTime.StartTime=120;//開始時(shí)間
  290.         stIrTime.OnTime=30;//開啟時(shí)間
  291.         stIrTime.OffTime=20;
  292.        
  293.         LCD_ShowString(30,100,200,16,16,"Sys Time ");
  294.         LCD_ShowChar(120,100,':',16,0);
  295.         LCD_ShowChar(146,100,':',16,0);
  296.         LCD_ShowNum(145,12,stIrTime.StartTime,3,16);
  297.         LCD_ShowNum(145,62,stIrTime.OffTime,3,16);
  298.         LCD_ShowNum(145,37,stIrTime.OnTime,3,16);
  299.         SetRmtIntStat(DISABLE);
  300.         Continues_Send(IR_SEND_OPEN);
  301.         SetRmtIntStat(ENABLE);

  302.         while(1)
  303.         {
  304.                 Os_Tick= OSTimeGet(&err)/OSCfg_TickRate_Hz;
  305.                 LCD_ShowNum(148,100,Os_Tick%60,2,16);
  306.                 LCD_ShowNum(124,100,Os_Tick/60%60,2,16);
  307.                 LCD_ShowNum(100,100,Os_Tick/3600,2,16);
  308.                
  309.                 if((Os_Tick/60)>stIrTime.StartTime  ) //開始時(shí)間之后,開始間隔開關(guān)機(jī)
  310.                 {
  311.                         if(Os_Tick> ulDelayTime )
  312.                         {
  313.                                 OS_CRITICAL_ENTER();
  314.                                 if(uc_ir_sendfg)
  315.                                 {
  316.                                         ulDelayTime=Os_Tick+ stIrTime.OnTime*60; //
  317.                                         Continues_Send(IR_SEND_OPEN);
  318.                                         LCD_ShowString(50,140,200,16,16,"Timer OPEN  ");
  319.                                 }
  320.                                 else
  321.                                 {
  322.                                         ulDelayTime=Os_Tick+ stIrTime.OffTime*60; //
  323.                                         Continues_Send(IR_SEND_CLOSE);
  324.                                         LCD_ShowString(50,140,200,16,16,"Timer CLOSE");
  325.                                 }
  326.                                 uc_ir_sendfg=!uc_ir_sendfg;
  327.                                 OS_CRITICAL_EXIT();
  328.                         }
  329.                 }
  330.                 OSTimeDlyHMSM(0,0,1,0,OS_OPT_TIME_PERIODIC,&err);   //延時(shí)1s
  331.         }
  332. }

  333. void task3_task(void *p_arg) //按鍵處理
  334. {       
  335.         OS_ERR err;
  336.         u8 *key;
  337.         OS_MSG_SIZE size;
  338.         CPU_SR_ALLOC();
  339.         while(1)
  340.         {
  341.                         //請(qǐng)求消息KEY_Msg
  342.                 key=OSQPend((OS_Q*                        )&KEY_Msg,   
  343.                                         (OS_TICK                )0,
  344.                     (OS_OPT                        )OS_OPT_PEND_BLOCKING,
  345.                     (OS_MSG_SIZE*        )&size,               
  346.                     (CPU_TS*                )0,
  347.                     (OS_ERR*                )&err);
  348.                 OS_CRITICAL_ENTER();
  349.                 switch(*key)
  350.                 {
  351.                         case WKUP_PRES:                //KEY_UP控制LED1
  352.                                 ucLCD_SW=!ucLCD_SW;
  353.                                 if(ucLCD_SW)
  354.                                         LCD_DisplayOn();
  355.                                 else
  356.                                         LCD_DisplayOff();
  357.                                 break;
  358.                         case KEY0_PRES:       
  359.                                         SetRmtIntStat(DISABLE);
  360.                                         LCD_ShowString(50,140,200,16,16,"OPEN        ");
  361.                                         Continues_Send(IR_SEND_OPEN);
  362.                                         SetRmtIntStat(ENABLE);
  363.                         break;
  364.                         case KEY1_PRES:
  365.                                         SetRmtIntStat(DISABLE);                               
  366.                                         LCD_ShowString(50,140,200,16,16,"CLOSE        ");
  367.                                         Continues_Send(IR_SEND_CLOSE);
  368.                             SetRmtIntStat(ENABLE);
  369.                                 break;
  370.                         case REMOTE:
  371.                                
  372.                                 break;
  373.                         default :break;
  374.                 }
  375.                 OS_CRITICAL_EXIT();
  376.                 OSTimeDlyHMSM(0,0,0,200,OS_OPT_TIME_PERIODIC,&err);   //延時(shí)200ms
  377.         }
  378. }
  379. void task4_task(void *p_arg)  //紅外解碼
  380. {
  381.         OS_ERR err;
  382.         OS_MSG_SIZE size;
  383.         CPU_SR_ALLOC();
  384.         u32 *data;
  385.         char str[9];
  386.         while(1)
  387.         {
  388.                         //請(qǐng)求消息KEY_Msg
  389.                 OSSemPend(REMOTE_Sem,
  390.                                                                                         0,
  391.                                                                                 OS_OPT_PEND_BLOCKING,
  392.                                                                                 (CPU_TS*                )0,
  393.                     (OS_ERR*                )&err);
  394.                 OS_CRITICAL_ENTER();                       
  395.                 sprintf(str,"%8X",ir_data[0]);
  396.                 LCD_ShowString(15,300,200,16,16,str);//顯示鍵值
  397.                 sprintf(str,"%8X",ir_data[1]);
  398.                 LCD_ShowString(90,300,200,16,16,str);//顯示鍵值
  399.                 sprintf(str,"%8X",ir_data[2]);
  400.                 LCD_ShowString(165,300,200,16,16,str);//顯示鍵值
  401.                 OS_CRITICAL_EXIT();
  402.                 OSTimeDlyHMSM(0,0,0,300,OS_OPT_TIME_PERIODIC,&err);   //延時(shí)200ms
  403.         }
  404. }

復(fù)制代碼

所有資料51hei提供下載:
空調(diào)遙控紅外.rar (688.09 KB, 下載次數(shù): 106)


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏5 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:158748 發(fā)表于 2018-7-31 10:50 | 只看該作者
接收碼是用中斷嗎
回復(fù)

使用道具 舉報(bào)

板凳
ID:381197 發(fā)表于 2018-7-31 11:35 | 只看該作者
IR_ENCODE.h的內(nèi)容可否直接貼出來?
回復(fù)

使用道具 舉報(bào)

地板
ID:381402 發(fā)表于 2018-7-31 20:57 | 只看該作者
附件中有IR_ENCODE.h文件嗎?
回復(fù)

使用道具 舉報(bào)

5#
ID:591987 發(fā)表于 2019-7-29 14:06 | 只看該作者
程序的SDK都有嗎
回復(fù)

使用道具 舉報(bào)

6#
ID:656179 發(fā)表于 2019-12-4 19:15 | 只看該作者
下載不了呢?
回復(fù)

使用道具 舉報(bào)

7#
ID:689669 發(fā)表于 2020-2-5 11:11 | 只看該作者
UCOS + 紅外控制+編碼為志高空調(diào)遙控器編碼
標(biāo)記,方便查找.
回復(fù)

使用道具 舉報(bào)

8#
ID:294886 發(fā)表于 2020-3-11 17:03 | 只看該作者
謝謝分享,下下來看看!
回復(fù)

使用道具 舉報(bào)

9#
ID:294886 發(fā)表于 2020-3-11 17:24 | 只看該作者
果然有用,樓主V5!
回復(fù)

使用道具 舉報(bào)

10#
ID:700459 發(fā)表于 2020-3-14 20:33 | 只看該作者
thank you
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 毛片国产| 成人精品一区 | 亚洲 欧美 在线 一区 | 久久精品国产一区二区三区 | 日韩在线综合 | 午夜不卡一区二区 | 综合激情av | 午夜精品久久久久久久久久久久 | 91免费版在线 | 免费看a | 久久久久亚洲精品国产 | 成人国产午夜在线观看 | 免费一级黄 | 国产资源网 | 欧美一区二区三区在线看 | 成人欧美一区二区三区在线播放 | 精品视频一区二区三区四区 | 欧美黄色大片在线观看 | 精品欧美一区二区中文字幕视频 | 欧美xxxx性| 一区二区三区亚洲 | 全部免费毛片在线播放网站 | 欧美成人第一页 | 高清一区二区视频 | 夜夜操av | 国产免费色| 国产人成在线观看 | 一区视频 | 久久久久久99 | 特级a欧美做爰片毛片 | 国产久 | 久久精品在线免费视频 | 一区二区三区四区在线 | 天堂成人国产精品一区 | 亚洲精品一区二区三区蜜桃久 | 三区四区在线观看 | 欧美综合国产精品久久丁香 | 在线观看成人 | 国产亚洲精品成人av久久ww | 日日操av| 国产成人精品一区二区三区四区 |