查看: 5535|回复: 5

[原创] 【LPC54114】项目+IC卡和密码的门禁系统

[复制链接]
  • TA的每日心情
    开心
    2018-7-24 08:30
  • 签到天数: 50 天

    连续签到: 1 天

    [LV.5]常住居民I

    22

    主题

    817

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    1713
    最后登录
    2019-12-7
    发表于 2017-4-17 10:55:18 | 显示全部楼层 |阅读模式
    本帖最后由 haifeng-388081 于 2017-4-16 12:45 编辑

    本节主要是完成整个项目的工作,之前各个模块功能的测试都已经发贴了,具体的请去下面地址。
    【LPC54114】学习+驱动NOKIA 5110屏幕
    https://www.nxpic.org.cn/module/forum/thread-610143-1-1.html
    【LPC54114】学习+RC522读卡,NOKIA 5110屏幕显示
    https://www.nxpic.org.cn/module/forum/thread-610148-1-1.html
    【LPC54114】学习+软件模拟IIC读写AT24C02
    https://www.nxpic.org.cn/module/forum/thread-610154-1-1.html
    【LPC54114】学习+4x4矩阵键盘使用5110显示
    https://www.nxpic.org.cn/module/forum/thread-610159-1-1.html
    本次设计的门禁系统可以验证的方式有IC卡和密码,其中任意一个通过验证就可以开门,系统设定管理员身份,用于对整个控制系统进行设置和管理,比如:可以修改系统的缺省密码,(系统烧录程序后,默认有两个密码:一个管理员密码777777,一个用户密码123456,管理员密码不能用于开门。这两个密码都可以修改。)添加或删除管理员IC卡,添加或删除用户密码。可以添加的用户密码和IC卡的个数与EEPROM的容量有关,作者使用的是AT24C02,容量较小,若改为大容量的可以存储更多的密码和IC卡,目前实现的功能主要有
    按设置编号分:
    10:修改管理员缺省密码
    11:修改用户缺省密码
    20:添加管理员IC卡
    21:删除管理员IC卡
    22:添加用户IC卡
    23:按编号逐个删除用户IC卡
    24:删除全部用户IC卡
    25:添加用户密码
    26:删除单个用户密码
    27:删除全部用户密码
    其他功能正在开发。视频地址
    https://v.youku.com/v_show/id_XM ... j.8428770.3416059.1


    系统的硬件原理图。指示灯用于指示状态和模拟开门继电器。
    原理图.jpg

    部分图片,具体的请看视频:
    09EA10275F7E1951A23D3426451D7B88.jpg
    298186157D16BB348B524AA7F109B0EE.jpg
    4F6A8E93552AB5540125BF5E7C56E71C.jpg
    0BEA4D08F595684D96E32A35C91EBC79.jpg
    部分函数:

    主函数
    1. /**
    2. * This is template for main module created by MCUXpresso Project Generator. Enjoy!
    3. **/

    4. #include <stdlib.h>
    5. #include "delay.h"

    6. #include "rc522_ctrl.h"
    7. #include "rc522.h"
    8. #include "rc522_main.h"

    9. #include "key_4x4.h"
    10. #include "beep_led.h"
    11. #include "24cxx.h"
    12. #include "myiic.h"
    13. #include "string.h"
    14. #include "system_ctrol.h"
    15. #include "nokia_5110.h"
    16. #include "definee.h"
    17. #include "display.h"
    18. #include "string.h"
    19. #include "relay.h"

    20. uint8_t KEY_LED_STATE;//背光灯状态  在main中测试

    21. //要写入到24c02的字符串数组
    22. const uint8_t TEXT_Buffer[]={"MiniSTM32F103RC"};
    23. const uint8_t text_pass[]={"12345"};//测试密码用
    24. uint8_t at24_read_temp[10];//从AT24C02中读出数据临时存放
    25. extern unsigned char AVR_bmp[];
    26. extern unsigned char home[];
    27. uint8_t receive_key_temp[10];
    28. uint8_t receive_key_cut_temp[10];
    29. uint8_t Admin_Mode;//管理员模式,
    30. uint8_t System_Display;//系统显示

    31. extern INT8U ID_ASC[8];////////////////////////////////////////////////////
    32. extern uint8_t ID_ASC_UINT8[8];//将卡号转换成uint8_t数据类型后的数组
    33. uint8_t TimerCounter=0;//定时器3定时计数用于按键背光,
    34. uint8_t Timer_Couner_State=0;//操作延时轮换状态
    35. uint8_t Open_Close_State=1;//开锁或上锁状态******1——为上锁状态,2为开锁状态
    36. /*
    37. 0---什么也不做
    38. 1---开始计数
    39. 2---计数时间到
    40. 3---有操作,停止计数
    41. */

    42. //矩阵键盘测试
    43. int main(void)
    44. {
    45.     uint8_t k;
    46.     uint8_t n;
    47.         uint8_t Admin_Code;
    48.         uint8_t ii;//长时间无操作提示延时用
    49.         static  uint32_t time_out_counter;//操作超时计数

    50.         LED_Init();                                  //初始化与LED连接的硬件接口
    51.     BEEP_Init();
    52.     LCD_init(); //初始化液晶   
    53.         LCD_clear();
    54.         IC_SPI_Init();         //RC522初始化
    55. //        RELAY_Init();        //继电器初始化
    56. //        DC_MOTOR_Init();//直流电机初始化
    57. //        STEPPER_MOTOR_Init();//步进电机初始化
    58. //        AH3144_Init(); //AAH3144霍尔中断初始化      
    59.     AT24CXX_Init();                        //IIC初始化
    60. //        KEY_LED_Init();//按键LED背光初始化
    61. //        OPEN_BUTTON_Init();//开门按键初始化
    62.         BEEP_RESET();//初始时关闭
    63. //        LED0=0;//初始时关闭
    64. //        LED1=0;//初始时关闭
    65.         
    66.         
    67. //        KEY_LED_Init();        //键盘背光初始化
    68. //        STEPPER_MOTOR_Open(100);
    69. //        delay_ms(1000);
    70. //        delay_ms(1000);
    71. //        STEPPER_MOTOR_Close(100);
    72. //DC_MOTOR_Open(40);
    73. //         while(1)//测试使用
    74. //         {
    75. //                 KEY_LED_Reset();//背光亮//测试用
    76. //                 delay_ms(1000);
    77. //                 KEY_LED_Set();//背光亮//测试用
    78. //                 delay_ms(1000);
    79. //                 uint8_t key;
    80. //                 key=KeyPro();
    81. //                 if(key!='G')
    82. //                 {
    83. //                         BEEP_Rest();//关闭蜂鸣器
    84. //                         RELAY_Set;
    85. //                         delay_ms(1000);
    86. //                         RELAY_Reset;
    87. //                        delay_ms(1000);
    88. //                 DC_MOTOR_Open(10);
    89. //                 delay_ms(1000);
    90. //                 DC_MOTOR_Close(10);
    91. //                delay_ms(1000);
    92. //                 }
    93. //         }
    94.     while(Factory_Rest())
    95.     {
    96.         LCD_write_english_string(0,0,"Factory RES. FaiL");
    97.     }

    98.         while(1)
    99.         {        
    100.                 LCD_draw_bmp_pixel(0,0,home,84,48);//j显示“家”
    101.                 System_Display=1;//显示“家”时有按键,清除屏幕显示
    102.                 n=Password_Change(receive_key_temp);
    103.         if(n==Input_Too_Long)
    104.         {
    105.                         dislay_input_too_long();//提示输入太长
    106.                         LCD_write_english_string(0,5,"              ");//清除最下面一行的输入显示区
    107.                         Clear_String(receive_key_temp,10);               
    108.                         ERROR_BEEP_LED();//密码错误声光提示
    109.         }
    110.         if(n==Input_Finash)
    111.         {
    112.                         
    113.                         if(receive_key_temp[0]=='*')//设置模式
    114.                         {
    115.                                 AT24CXX_Read(240,at24_read_temp,10);       //从EEPROM中读出管理员密码
    116.                                 Clear_String(receive_key_cut_temp,10);
    117.                                 Cut_String(receive_key_temp,receive_key_cut_temp);//清除临时数组内的数据
    118.                                 if(strcmp(receive_key_cut_temp,at24_read_temp)==0)//管理员密码输入正确
    119.                                 {
    120.                                         admin_password_ok();//提示管理员密码正确
    121.                                         Clear_String(receive_key_cut_temp,10);//清除临时数组内的数据
    122.                                         LCD_write_english_string(0,5,"              ");//清除最下面一行的输入显示区
    123.                                         Admin_Mode=ADMIN_MODE;
    124.                                         Timer_Couner_State=1;//无操作延时——定时器开始计数
    125.                                 }
    126.                                 else//管理员密码输入错误
    127.                                 {
    128.                                         admin_password_error();
    129.                                         Clear_String(receive_key_cut_temp,10);//清除临时数组内的数据
    130.                                         LCD_write_english_string(0,5,"              ");//清除最下面一行的输入显示区
    131.                                         Admin_Mode=0;
    132.                                 }
    133.                                 while(Admin_Mode==ADMIN_MODE)
    134.                                 {

    135.                                         if(Timer_Couner_State==2)//无操作延时时间到
    136.                                         {
    137.                                                 Timer_Couner_State=0;//回到初始状态0
    138.                                                 time_out();//提示长时间无操作,退出
    139.                                                 for(ii=0;ii<15;ii++)
    140.                                                 Delay_ms(200);
    141.                                                 ERROR_BEEP_LED();//错误声光报警
    142.                                                 break;
    143.                                         }
    144.                                                 
    145.                                         n=Password_Change(receive_key_temp);
    146.                                         if(n==Input_Finash)
    147.                                         {
    148.                                                 if(receive_key_temp[0]=='*')//设置模式
    149.                                                 {
    150. //                                                        time_out_counter=0;//清除计数
    151.                                                         Timer_Couner_State=3;//有操作退出无操作延时模式
    152.                                                         Clear_String(receive_key_cut_temp,10);
    153.                                                         Cut_String(receive_key_temp,receive_key_cut_temp);//清除临时数组内的数据
    154.                                                         Admin_Code=(uint8_t)atof(receive_key_cut_temp);//将字符串转换成数字并强制转换成uint8_t型
    155.                                                         switch(Admin_Code)
    156.                                                         {
    157.                                                                 case ADD_ADMIN_IC:
    158.                                                                 {
    159.                                                                         ad_admin_ic();//添加管理员IC卡
    160.                                                                 }
    161.                                                                         break;//添加管理员卡
    162.                                                                 case ADD_USER_IC:
    163.                                                                 {
    164. //                                                                        ad_user_ic();//添加用户卡
    165.                                                                         adminic_add_ic();
    166.                                                                 }break;//添加用户卡
    167.                                                                 case ADD_USER_PASSWORD:
    168.                                                                 {
    169.                                                                         add_user_password();//添加用户密码
    170.                                                                 }                                                                        
    171.                                                                 break;
    172.                                                                 case DELETE_ALL_USER_PASSWORD:
    173.                                                                 {
    174.                                                                         deleting_all_user_password();//删除所有用户密码
    175.                                                                 }
    176.                                                                         break;//删除所有用户密码
    177.                                                                 case DELETE_USER_PASSWORD:
    178.                                                                 {
    179.                                                                         deleting_user_pass();
    180.                                                                 }
    181.                                                                         break;//删除指定的用户密码
    182.                                                                 case DELETE_ADMIN_IC:
    183.                                                                 {
    184.                                                                         delete_admin_ic();
    185.                                                                 }
    186.                                                                 break;//删除管理员卡
    187.                                                                 case DELETE_USER_IC: //按用户卡编号删除用户卡
    188.                                                                 {
    189.                                                                         delete_user_ic();
    190.                                                                 }break;//删除用户卡
    191. //                                                                case DELETE_NUM_IC: break;
    192.                                                                 case DELETE_ALL_USER_IC:
    193.                                                                 {
    194.                                                                         delete_all_user_ic();
    195.                                                                 }break;//删除所有用户卡
    196.                                                                 case CHANGE_ADMIN_PASSWORD: //修改管理员密码
    197.                                                                 {
    198.                                                                         change_admin_password();//显示提示
    199.                                                                         Change_ADMIN_Password();
    200.                                                                 }break;//修改管理员密码
    201.                                                                 case CHANGE_USER_PASSWORD: //修改用户密码
    202.                                                                 {
    203.                                                                         change_auser_password();//显示提示
    204.                                                                         Change_USER_Password();
    205.                                                                 }break;//修改用户密码
    206.                                                                 default: break;
    207.                                                                
    208.                                                         }break;
    209.                                                 }
    210.                                                 else break;
    211.                                         }
    212.                                 }
    213.                         }
    214.                         else        //密码开门模式
    215.                         {
    216.                                 //先对比系统内置的用户密码
    217.                                 
    218.                                 Clear_String(receive_key_cut_temp,10);//清除临时数组内的数据
    219.                                 Cut_String(receive_key_temp,receive_key_cut_temp);
    220.                                 AT24CXX_Read(USER_PASSWPRD,at24_read_temp,10);       //从EEPROM中读出数据 datatemp用户密码
    221.                 if(strcmp(receive_key_cut_temp,at24_read_temp)==0)
    222.                 {
    223.                                         OK_BEEP_LED();//密码成功声光提示
    224.                                         user_password_ok();//提示用户密码正确,开门
    225.                                         Open_Close_State=2;//设为开锁状态
    226.                                         RELAY_Open();//开锁程序
    227.                                         Clear_String(receive_key_cut_temp,10);//清除临时数组内的数据
    228.                     Delay_ms(1000);
    229.                 }
    230.                 else
    231.                 {
    232.                     for(k=0;k<USER_MAX_COUNTER;k++)
    233.                                         {
    234.                                                 AT24CXX_Read(USER_PASSWORD_START+k*10,at24_read_temp,10);       //从EEPROM中读出数据 datatemp用户密码
    235.                                                 if(strcmp(receive_key_cut_temp,at24_read_temp)==0)
    236.                                                 {
    237.                                                         OK_BEEP_LED();//密码成功声光提示
    238.                                                         user_password_ok();//提示用户密码正确,开门
    239.                                                         Open_Close_State=2;//设为开锁状态
    240.                                                         RELAY_Open();//开锁程序
    241. //                                                        DC_MOTOR_Open(10);//开锁程序
    242. //                                                        STEPPER_MOTOR_Open(100);//开锁程序
    243. //                                                        KEY_LED_Reset();//背光亮//测试用
    244.                                                         Clear_String(receive_key_cut_temp,10);//清除临时数组内的数据
    245.                                                         Delay_ms(1000);
    246.                                                         break;//跳出密码比对
    247.                                                 }
    248.                                                 if(k>=USER_MAX_COUNTER-1)//对比到最后一组密码时还没有相同的密码
    249.                                                 {
    250.                                                         ERROR_BEEP_LED();//密码错误声光提示
    251.                                                         user_password_error();//提示用户密码错误,重新输入                                       
    252.                                                         Clear_String(receive_key_cut_temp,10);//清除临时数组内的数据
    253.                                                         
    254.                                                 }
    255.                                                 
    256.                                         }
    257.                                        
    258.                 }
    259.                                 LCD_write_english_string(0,5,"              ");//清除最下面一行的输入显示区
    260.                         }
    261.         }        
    262.         else
    263.         {
    264.                 ic_read_open();//刷卡开门模式
    265.         }
    266.         }
    267. }

    复制代码
    修改密码函数
    1. /********************************************************************
    2. 函数名称:uint8_t Password_Change()
    3. 功    能:根据按键来进行模式和功能的设置
    4. 参    数:无
    5. 返 回 值:
    6.             0:成功
    7.             1:密码输入个数过长
    8.             2:密码不匹配
    9.             3:输入超时
    10. 说    明:无
    11. *********************************************************************/
    12. uint8_t Password_Change(uint8_t *key_temp)
    13. {
    14.     uint8_t t;//用于清除接收按键的临时数组
    15.     static uint8_t h=0;//i用于将按键值存入临时数组计数,j用于清除临时数组计数
    16.         
    17.     key=KeyPro();   //读取按键值
    18.     if(key!='G')    //有有效键按下时
    19.     {        
    20. //                LCD_clear();
    21.                 if(System_Display==1)
    22.                 {
    23.                         LCD_clear();
    24.                         System_Display=0;
    25.                 }
    26.                 if(key=='*')//以‘*’开关的输入为进入设置模式
    27.         {
    28.             Set_Mode=SET_MODE;//进入设置模式标志
    29.             Key_Temp[h]=key;//将按键值存入按键临时数组中               
    30.             h++;
    31.             LCD_write_english_string(0,5,"              ");//清空原来的显示
    32.             LCD_write_english_string(0,5,Key_Temp);    //显示输入的按键值                 
    33.         }
    34.                 else if(key>='0'&&key<='9')//以‘*’开关的输入为进入设置模式
    35.         {
    36.             Set_Mode=PASSWORD_MODE;//进入设置模式标志
    37.                         Key_Temp[h]=key;//将按键值存入按键临时数组中
    38.             Key_Temp_Mark[h]='*';//将按键值存入按键临时数组中               
    39.             h++;
    40.             LCD_write_english_string(0,5,"              ");//清空原来的显示
    41.             LCD_write_english_string(0,5,Key_Temp_Mark);    //显示输入的按键值                 
    42.         }
    43.         while(Set_Mode==SET_MODE)
    44.                 {
    45.             key=KeyPro();   //读取按键值
    46.             if(key!='G')
    47.             {
    48.                 Key_Temp[h]=key;//将按键值存入按键临时数组中
    49.                 LCD_write_english_string(0,5,"              ");//清空原来的显示
    50.                 LCD_write_english_string(0,5,Key_Temp);   //显示输入的按键值            
    51.                 h++;
    52.                 if(key=='#')//‘#’为输入结束标志
    53.                 {
    54.                     h=0;//清除之前输入的数据计数
    55.                     Set_Mode=0;//返回模式0
    56.                     strlcpy(key_temp,Key_Temp,sizeof(Key_Temp));
    57.                     Clear_String(Key_Temp,sizeof(Key_Temp));//清除Key_Temp中的所有数据
    58.                     return Input_Finash;//输入完成
    59.                 }
    60.                 if(h>PASSWORD_MAX_BIT_NUM)    //+1是为了多出来的‘*’
    61.                 {
    62.                     h=0;//清除之前输入的数据计数
    63.                     Set_Mode=0;//返回模式0
    64.                     Clear_String(Key_Temp,sizeof(Key_Temp));//清除Key_Temp中的所有数据
    65. //                    ERROR_BEEP_LED();//密码错误声光提示                    
    66.                     return Input_Too_Long;   //密码输入个数过长
    67.                 }      
    68.             }
    69.             
    70.         }
    71.                 while(Set_Mode==PASSWORD_MODE)
    72.                 {
    73.             key=KeyPro();   //读取按键值
    74.             if(key!='G')
    75.             {
    76.                 Key_Temp[h]=key;//将按键值存入按键临时数组中
    77.                                 Key_Temp_Mark[h]='*';//将按键值存入按键临时数组中               
    78.                                 LCD_write_english_string(0,5,"              ");//清空原来的显示
    79.                                 LCD_write_english_string(0,5,Key_Temp_Mark);    //显示输入的按键值
    80.                                 h++;                                
    81.                 if(key=='#')//‘#’为输入结束标志
    82.                 {
    83.                     h=0;//清除之前输入的数据计数
    84.                     Set_Mode=0;//返回模式0
    85.                     strlcpy(key_temp,Key_Temp,sizeof(Key_Temp));
    86.                     Clear_String(Key_Temp,sizeof(Key_Temp));//清除Key_Temp中的所有数据
    87.                                         Display_Space(Key_Temp_Mark,PASSWORD_MAX_BIT_NUM);
    88.                     return Input_Finash;//输入完成
    89.                 }
    90.                 if(h>PASSWORD_MAX_BIT_NUM)    //+1是为了多出来的‘*’
    91.                 {
    92.                     h=0;//清除之前输入的数据计数
    93.                     Set_Mode=0;//返回模式0
    94.                     Clear_String(Key_Temp,sizeof(Key_Temp));//清除Key_Temp中的所有数据
    95.                                         Display_Space(Key_Temp_Mark,PASSWORD_MAX_BIT_NUM);
    96. //                    ERROR_BEEP_LED();//密码错误声光提示                    
    97.                     return Input_Too_Long;   //密码输入个数过长
    98.                 }      
    99.             }
    100.             
    101.         }
    102.         
    103.                
    104.                

    105.     }  
    106.    
    107. }
    复制代码
    添加用户卡函数
    1. /********************************************************************
    2. 函数名称:uint8_t ic_read_at24cx(uint8_t add)
    3. 功    能:将读到的卡号写入AT24CX
    4. 参    数:uint8_t add,要写入的AT24CX的地址
    5. 返 回 值:返回TRUE
    6. 说    明:无
    7. *********************************************************************/
    8. uint8_t ad_admin_ic()
    9. {
    10.         uint8_t at24_read_temp[10];
    11.         uint8_t clear_at24[10]={0};
    12.         uint32_t time_counter=0;//操作超时计数
    13.         uint8_t key_temp;//按键临时存储
    14.         uint8_t ii;//长时间无操作提示延时用
    15. //        add_admin_ic();//提示添加管理员卡
    16.         BEEP_Rest();
    17.         LCD_clear();
    18.         Timer_Couner_State=1;//无操作延时开始计时                        
    19.         while(IC_READ()!=TRUE)        //等待读卡
    20.         {
    21.                 key_temp=KeyPro();
    22.                 if(key_temp=='*')//“*”键按下时,退出操作
    23.                 {
    24.                         time_counter=0;
    25.                         return 0;
    26.                 }
    27.                 add_admin_ic();//提示添加管理员卡        
    28. //                time_counter++;
    29. //                if(time_counter>500)
    30. //                {
    31. //                        time_counter=0;
    32. //                        return TIME_OUT;//操作超时,退出
    33. //                }
    34.                 if(Timer_Couner_State==2)//无操作延时时间到
    35.                 {
    36.                         Timer_Couner_State=0;//回到初始状态0
    37.                         ERROR_BEEP_LED();//错误声光报警
    38.                         time_out();//提示长时间无操作,退出
    39.                         for(ii=0;ii<15;ii++)
    40.                         Delay_ms(100);
    41.                         
    42.                         return TIME_OUT;//返回长时间无操作标志
    43.                 }
    44.         }
    45.         Timer_Couner_State=3;//有操作退出无操作延时模式
    46.         OK_BEEP_LED();//正确声光报警
    47. //        LCD_clear();
    48.         AT24CXX_Write(ADMIN_IC,clear_at24,sizeof(clear_at24));//将EEPROM的210地址清空,用来存储管理员卡号
    49.         AT24CXX_Write(ADMIN_IC,ID_ASC_UINT8,sizeof(ID_ASC_UINT8));//将管理员卡号写入EEPROM的210地址
    50.         AT24CXX_Read(ADMIN_IC,at24_read_temp,10);       //从EEPROM中读出数据 datatemp用户密码
    51.         add_admin_ic_ok();//提示添加管理员卡成功
    52.         LCD_write_english_string(0,5,ID_ASC_UINT8);//清除最下面一行的输入显示区
    53.         Delay_ms(1000);
    54.         return TRUE;
    55.         //读卡成功
    56.         
    57. }
    复制代码
    。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。


    回复

    使用道具 举报

  • TA的每日心情
    开心
    2017-1-24 09:50
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]初来乍到

    654

    主题

    3262

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    13269
    最后登录
    2019-1-27
    发表于 2017-4-17 11:05:41 | 显示全部楼层
    真棒!
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2018-7-24 08:30
  • 签到天数: 50 天

    连续签到: 1 天

    [LV.5]常住居民I

    22

    主题

    817

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    1713
    最后登录
    2019-12-7
     楼主| 发表于 2017-4-17 11:12:43 | 显示全部楼层

    谢谢小七。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    0

    主题

    2

    帖子

    0

    新手上路

    Rank: 1

    积分
    12
    最后登录
    2017-4-20
    发表于 2017-4-20 09:37:43 | 显示全部楼层
    太好的资料,收藏,学习IC和门禁资料
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2017-10-16 10:32
  • 签到天数: 7 天

    连续签到: 1 天

    [LV.3]偶尔看看II

    1

    主题

    20

    帖子

    0

    注册会员

    Rank: 2

    积分
    71
    最后登录
    2017-10-26
    发表于 2017-9-5 10:53:22 | 显示全部楼层
    貌似视频看不了!
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    0

    主题

    47

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    415
    最后登录
    2018-12-5
    发表于 2017-9-16 15:37:14 | 显示全部楼层
    感谢分享,肯定会用得到 收藏了
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /3 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2025-9-10 00:47 , Processed in 0.099202 second(s), 25 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

    快速回复 返回顶部 返回列表