CubieBoard中文论坛

 找回密码
 立即注册
搜索
热搜: unable
查看: 15457|回复: 9

一直有人在问如何UART接收数据,最近很忙,抱歉

[复制链接]
发表于 2015-5-22 19:02:23 | 显示全部楼层 |阅读模式
本帖最后由 jiangdou 于 2015-5-22 19:09 编辑

不多说,上代码

图片为证
A10  A20  A31 A80  RK3188  RK3288  都可以用
  1. /*
  2. *file jiangdou_passwd.c
  3. *time 2015-05-01
  4. *
  5. *author by jiangdou QQ:344283973
  6. *
  7. */



  8. #include "jiangdou_passwd.h"



  9. #include <dirent.h>

  10. #include <stdio.h>
  11. #include <stdlib.h>
  12. #include <stddef.h>
  13. #include <errno.h>

  14. #include <ctype.h>
  15. #include <unistd.h>
  16. #include <fcntl.h>
  17. #include <string.h>
  18. #include <math.h>
  19. #include <semaphore.h>
  20. #include <pthread.h>
  21. #include <termios.h>
  22. #include <signal.h>

  23. #include <linux/kd.h>
  24. #include <linux/fb.h>

  25. #include <sys/time.h>
  26. #include <sys/ipc.h>
  27. //#include <sys/msg.h>
  28. #include <sys/mman.h>
  29. #include <sys/ioctl.h>
  30. #include <sys/types.h>
  31. #include <sys/stat.h>
  32. #include <sys/un.h>
  33. //#include <sys/shm.h>
  34. #include <sys/socket.h>
  35. #include <sys/un.h>



  36. pthread_t thread[1];
  37. pthread_mutex_t mut;
  38. int fd =0;
  39. int IsReceve = 0;
  40. unsigned char msg[80];
  41. char buff[80];

  42. time_t now;
  43. struct tm *tm_now;
  44. char *datetime;



  45. int Set_Port(int fd,int baud_rate,int data_bits,char parity,int stop_bits)
  46. {
  47.         struct termios newtio,oldtio; //
  48.         
  49.         //fprintf(stdout,"The Fucntion Set_Port() Begin!\n");
  50.         
  51.         if( tcgetattr(fd,&oldtio) !=0 )
  52.         {
  53.                 perror("Setup Serial:");
  54.                 return -1;
  55.         }
  56.         
  57.         bzero(&newtio,sizeof(newtio));
  58.         
  59.         newtio.c_cflag |= CLOCAL | CREAD;
  60.         newtio.c_cflag &= ~CSIZE;
  61.         
  62.         //Set BAUDRATE
  63.         
  64.         switch(baud_rate)
  65.         {
  66.                 case 2400:
  67.                         cfsetispeed(&newtio,B2400);
  68.                         cfsetospeed(&newtio,B2400);
  69.                         break;
  70.                 case 4800:
  71.                         cfsetispeed(&newtio,B4800);
  72.                         cfsetospeed(&newtio,B4800);
  73.                         break;
  74.                 case 9600:
  75.                         cfsetispeed(&newtio,B9600);
  76.                         cfsetospeed(&newtio,B9600);
  77.                         break;
  78.                 case 19200:
  79.                         cfsetispeed(&newtio,B19200);
  80.                         cfsetospeed(&newtio,B19200);
  81.                         break;        
  82.                 case 38400:
  83.                         cfsetispeed(&newtio,B38400);
  84.                         cfsetospeed(&newtio,B38400);
  85.                         break;
  86.                 case 115200:
  87.                         cfsetispeed(&newtio,B115200);
  88.                         cfsetospeed(&newtio,B115200);
  89.                         break;                                                                                                                                
  90.                 default:
  91.                         cfsetispeed(&newtio,B9600);
  92.                         cfsetospeed(&newtio,B9600);
  93.                         break;
  94.                
  95.         }
  96.         
  97.         //Set databits upon 7 or 8
  98.         switch(data_bits)
  99.         {
  100.                 case 7:
  101.                         newtio.c_cflag |= CS7;
  102.                         break;
  103.                 case 8:
  104.                 default:
  105.                         newtio.c_cflag |= CS8;
  106.         }
  107.         
  108.         switch(parity)
  109.         {
  110.                 default:
  111.                 case 'N':
  112.                 case 'n':
  113.                 {
  114.                         newtio.c_cflag &= ~PARENB;
  115.                         newtio.c_iflag &= ~INPCK;
  116.                 }
  117.                 break;
  118.                
  119.                 case 'o':
  120.                 case 'O':
  121.                 {
  122.                         newtio.c_cflag |= (PARODD|PARENB);
  123.                         newtio.c_iflag |= INPCK;
  124.                 }
  125.                 break;
  126.                
  127.                 case 'e':
  128.                 case 'E':
  129.                 {
  130.                         newtio.c_cflag |= PARENB;
  131.                         newtio.c_cflag &= ~PARODD;
  132.                         newtio.c_iflag |= INPCK;
  133.                 }
  134.                 break;
  135.                
  136.                
  137.                 case 's':
  138.                 case 'S':
  139.                 {
  140.                         newtio.c_cflag &= ~PARENB;
  141.                         newtio.c_cflag &= ~CSTOPB;
  142.                         
  143.                 }
  144.                 break;
  145.         }
  146.         
  147.         //Set STOPBITS 1 or 2
  148.         switch(stop_bits)
  149.         {
  150.                 default:
  151.                 case 1:
  152.                 {
  153.                         newtio.c_cflag &= ~CSTOPB;
  154.                 }
  155.                 break;
  156.                
  157.                 case 2:
  158.                 {
  159.                         newtio.c_cflag |= CSTOPB;
  160.                 }
  161.                 break;
  162.                
  163.         }
  164.         
  165.         newtio.c_cc[VTIME]  = 1;
  166.         newtio.c_cc[VMIN]        = 255;        //Read Comport Buffer when the bytes in Buffer is more than VMIN bytes!
  167.         
  168.         tcflush(fd,TCIFLUSH);
  169.         
  170.         if(( tcsetattr(fd,TCSANOW,&newtio))!=0 )
  171.         {
  172.                 perror("Com set error");
  173.                 return -1;
  174.         }
  175.         
  176.         //fprintf(stdout,"The Fucntion Set_Port() End!\n");
  177.         
  178.         return 0;
  179. }
  180. int Open_Port(int com_port)
  181. {
  182.         int fd = 0;
  183.         
  184.         //fprintf(stdout,"Function Open_Port Begin!\n");
  185.                
  186.         char *dev[] = { "/dev/ttyS0","/dev/ttyS1","/dev/ttyS2","/dev/ttyS3","/dev/ttyS4","/dev/ttyS5","/dev/ttyS6"};
  187.                
  188.         if( (com_port < 0) || (com_port >6) )
  189.         {
  190.                 perror("The port is out range:");
  191.                 return -1;
  192.         }
  193.         
  194.         //Open the port        
  195.         //fd = open(dev[com_port],O_RDWR|O_NOCTTY|O_NDELAY);
  196.         fd = open("/dev/ttyS3",O_RDWR|O_NOCTTY|O_NDELAY);        
  197.         if( fd<0 )
  198.         {
  199.                 perror("Open serial port:");
  200.                 return -1;
  201.         }
  202.         
  203.         if( fcntl(fd,F_SETFL,0)<0 )
  204.         {
  205.                 perror("fcntl F_SETFL:");
  206.                 return -1;
  207.         }
  208.         
  209.         if( isatty(fd) ==0 )
  210.         {
  211.                 perror("isatty is not a terminal device");
  212.                 return -1;
  213.         }
  214.         
  215.         return fd;
  216. }




  217. int StrToInt(char *str)
  218. {
  219.          int value  = 0;
  220.          int sign   = 1;
  221.          int result = 0;
  222.          if(NULL == str)
  223.          {
  224.                 return -1;
  225.          }
  226.          if('-' == *str)
  227.          {
  228.                   sign = -1;
  229.                   str++;
  230.          }
  231.          while(*str)
  232.          {
  233.                   value = value * 10 + *str - '0';
  234.                   str++;
  235.          }
  236.          result = sign * value;
  237.          return result;
  238. }




复制代码

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

 楼主| 发表于 2015-5-22 19:04:03 | 显示全部楼层
本帖最后由 jiangdou 于 2015-5-22 19:08 编辑

A10  A20  A31 A80  RK3188  RK3288  都可以用

接上页
  1. void read_port(void)
  2. {
  3.         fd_set rd;
  4.         int nread,retval;

  5.         struct timeval timeout;
  6.         FD_ZERO(&rd);
  7.         FD_SET(fd,&rd);
  8.         timeout.tv_sec = 3;
  9.         timeout.tv_usec = 0;
  10.         while(IsReceve == 1);
  11.         retval = select(fd+1,&rd,NULL,NULL,&timeout);
  12.         switch(retval)
  13.         {
  14.         case 0:
  15.                 //printf("No data input within 1 seconds.\n");
  16.                 break;
  17.         case -1:
  18.                 perror("select:");
  19.                 break;
  20.         default:
  21.                 if( (nread = read(fd,msg,1024))>0 )
  22.                 {
  23.                         IsReceve =1;
  24.                         //printf("%sReceiveMessage: %s\n",msg,datetime);
  25.                         //printf("\n%sReceive %d bytes,Message is:\n%s\n",datetime,nread,msg);
  26.                         sprintf(buff, "%s", msg);//warning   去掉unsigned char buff[80] ->char buff[80]
  27.                         memset(msg,0,80);
  28.                 }
  29.                 break;               
  30.         }//end of switch

  31. }




  32. void create_thread(void)
  33. {
  34.         int temp;
  35.         memset(thread,0,sizeof(thread));
  36.         if((temp = pthread_create(&thread[0],NULL,(void *)read_port,NULL)) != 0)
  37.                 printf("Create recv_thread failed!\n");
  38.         
  39. }

  40. void wait_thread(void)
  41. {

  42.         if(thread[0] != 0)
  43.         {
  44.                 pthread_join(thread[0],NULL);//等待线程结束
  45.                 //printf("recev_thread end\n");

  46.         }
  47. }

  48. //
  49. int rk3288_shut_down()//关机
  50. {
  51.         
  52.         show_error_logo();//显示SYSTEM ERROR!!
  53.         sleep(6);//延时2S
  54.         //xxx_xx();//关机命令
  55.         //write(fd,"dou:shut#",9);//关机命令======="dou:shut#"
  56.         for(;;){  //死循环
  57.                 sleep(3);  
  58.         }
  59.         return 1;
  60. }
  61. //


  62. #define HOST_PORT 0

  63. //void keyID_parse()
  64. int main(void)
  65. {
  66.         int j = 0;

  67.         if((fd = Open_Port(HOST_PORT)) == -1)
  68.         {
  69.                 perror("Open port");
  70.                 return -1;
  71.         }
  72.         
  73.         if( Set_Port(fd,9600,8,'N',1) == -1)
  74.         {
  75.                 perror("Set_Port");
  76.                 return -1;
  77.         }
  78.         
  79.         //Serial_SendStr(fd,"Hello This is from Ubuntu\n");

  80.         pthread_mutex_init(&mut,NULL);
  81. //###########################################################
  82. //取随机数,发送到MCU  MCU解析dou:1234   a=1234  //keyID = (a * 2) - 3   send keyID to rk3288
  83.         unsigned char x[2];
  84.         unsigned int i;
  85.         char buf[20];
  86.         int local_ID;
  87.         char read_buf[20];
  88.         char *pp = read_buf;
  89.         char *ppp = buff;// ->unsigned
  90.         srand(time(0));
  91.         i = rand();//取随机数
  92.         x[0] = (char)((i >> 8) & 0xff);//16bit_height
  93.         //printf("x[0] =%x  xsize = %d\n", x[0], sizeof(x[0]));
  94.         x[1] = (char)((i >> 24) & 0xff);//16bit_height
  95.         //printf("x[1] =%x  xsize = %d\n", x[1], sizeof(x[1]));
  96.         sprintf(buf, "dou:%d#\r", ((x[1] << 8) | x[0]) & 0xffff);//sprintf(s, "", ,)//(((x[1] << 8) | x[0]) & 0xffff)

  97. //###########################################################
  98.         while(1)//####
  99.         {
  100.                 whi++;
  101.                 send_dou++;
  102.                 time(&now);
  103.                 tm_now = localtime(&now);
  104.                 datetime=asctime(tm_now);
  105.                
  106.                 create_thread();
  107.         wait_thread();//等待线程结束
  108.                
  109.                 //printf("jiangdou while\n");
  110.                 //write(fd,"while...",8);
  111.                 usleep(3000);//毫秒延时
  112.                 write(fd,buf,strlen(buf));//key_id = "dou:1234#"
  113.                 if( IsReceve ==1)//表示有recv数据
  114.         {
  115.                         //printf("Message is:%s\n",buff);//recv "dou:65151"
  116.                         //write(fd,"ifif...",7);
  117.                         
  118.                         bb = strstr(ppp, "dou:");//recv str = "dou:65151"
  119.                         if(bb != NULL){
  120.                                 
  121.                                 bb = strstr(ppp, ":");
  122.                                 sprintf(read_buf, "%s",(bb + 1));
  123.                                 key_id = StrToInt(pp);//key_id = 65151;
  124.                                  
  125.                                 
  126.                                 
  127.                                 if(reve_id == local_ID){
  128.                                 //if(key_id == 2135){////"dou:2135\r\n");//收到KEY_ID
  129.                                        
  130.                                         goto go_on;// passwd success!!
  131.                                        
  132.                                 }else{
  133.                                         //close(fd);
  134.                                         ;
  135.                                         if(send_dou > 5){
  136.                                                 rk3288_shut_down();//关机
  137.                                            // passwd fali!!!
  138.                                        
  139.                                         }
  140.                                        
  141.                                 }
  142.                         }
  143.                         
  144.                         
  145.                         IsReceve = 0;
  146.                         
  147.                         
  148.                 }
  149.                
  150.                         
  151.                 if(whi > 5){
  152.                          // fali!!!  time out 5S!!
  153.                         whi = 0;
  154.                         //close(fd);
  155.                         rk3288_shut_down();//关机        
  156.                 }
  157.      

  158.         }
  159. go_on:        
  160.         close(fd);
  161.         
  162.         return 0;

  163. }
复制代码
回复 支持 反对

使用道具 举报

发表于 2015-5-25 14:41:17 | 显示全部楼层
{:soso_e166:}
回复 支持 反对

使用道具 举报

发表于 2015-5-26 09:35:17 | 显示全部楼层

不错的教程。
回复 支持 反对

使用道具 举报

发表于 2015-6-28 19:56:37 | 显示全部楼层
很好的串口操作实例,精华之
回复 支持 反对

使用道具 举报

发表于 2015-11-27 09:22:14 | 显示全部楼层
详细 码风也好。
回复 支持 反对

使用道具 举报

发表于 2016-4-13 11:40:21 | 显示全部楼层
来研究研究
回复 支持 反对

使用道具 举报

发表于 2016-7-26 10:33:10 | 显示全部楼层
<P>said, longchamp outlet  first toms shoes  of lululemon outlet  all designer handbags  I can coach outlet online  not swim, polo ralph lauren outlet  I prada outlet  will find hogan  a lululemon australia  relatively shallow northface  fulcrum, gucci belts  make ray ban  every mcm bags  effort to tory burch shoes  save swarovski jewelry  his cheap basketball shoes  wife, michael kors v?skor  until cheap oakley sunglasses  his nike free shoes  wife new balance  out hollister  of puma  the oakley outlet online  water, and secondly, baseball jerseys  I converse shoes  would tommy hilfiger  love nfl bears  handles red bottoms  throw mother, beats by dre  because the tory burch sale  mother replica rolex  Year Great, toronto raptors  more experienced, ralph lauren outlet  will jimmy choo  swim a toms shoes outlet  little, timberland boots  so chanel purses  add nfl titans  spare mont blanc pens  tire, pandora rings  I believe tory burch shoes  swim burberry handbags  out ralph lauren  of asics  the puma outlet store  water rayban  just longchamp taschen  a hilfiger outlet  matter nike air  of bottega veneta  time.Besides, supra footwear  not coach factory outlet online  if, lunette ray ban pas cher  but nfl azcardinals  rather rayban  together burberry  with juicy couture clothings  efforts toms outlet  made kate spade outlet  to barbour mens jackets  save, moncler outlet online  either nfl chargers  they ralph lauren uk  will vans schuhe  not michael kors outlet online  swim, encounter maccosmetics.com  this michael kors handbags  kind nfl lions  of burberry  thing, ray ban sunglasses  the hollister online shop deutschland  shot will the north face outlet  be.We michael kors  look supra men shoes  at nike.de  the new balance  foreigners chanel sunglasses  say, michael kors bags  the north face outlet  same adidas shoes  problem gucci shoes  can woolrich clearance  only nfl saints  save huaraches  one, free run  then, after air max shoes  a silence cheap glasses  foreigner bos jersey  answer: nike.se  This is thomas sabo uk  a nfl dolphins  cruel nfl steelers  question, if ed hardy clothing  I vans shoes  had nike outlet store  to choose, timberland shoes  I tiffany  saved ray ban sunglasses  my nfl cowboys  wife. Ask air jordan retro  why. He montre pas cher  said: nike roshe  First swarovski crystal  of coach outlet  all, philadelphia 76ers jersey  my north face  mother had uggaustralia.com  a nfl patriots  big nfl 49ers  year bcbg dresses  (75 years soccer shoes  old). nfl buccaneers  Most cheap nike shoes  of burberry outlet online  her life polo outlet online  has mcm handbags  been finished, tommy hilfiger outlet stores  but free running  my wife iphone 4s cases  was lululemon  still air jordan  young. toms outlet  Secondly, ralph lauren outlet online  if we ugg australia  have designer handbags  children new balance  to oakley sunglasses cheap  support, the roshes  more cheap michael kors  I nfl panthers  will lunette oakley pas cher  not hesitate to nfl raiders  save nike huarache  his wife. nike free run  The nike air max 2015  children nike air force  can tommy hilfiger  not ralph lauren outlet  do pandora  without nike.com  her polo ralph lauren  mother. watches  Moreover, coach bags  even ralph lauren  if uggs outlet  my rolex replica  own cheap eyeglasses  mother hermes birkin  will long champ  let washington wizards  me burberry sale  save his michael kors purses  wife, jordans for sale  not toms.com  to asics gel  save ray ban sunglasses  her, nfl broncos  he pandora  will nfl chiefs  definitely michael kors outlet  be kate spade outlet online  to save his christian louboutin  wife.From nike online  the adidas.de  Internet coco chanel  to coach outlet  see burberry uk  this nfl texans  three ray ban outlet  story, bottega  let ray bans  me lululemon canada  deep converse  emotion.The ugg boots  first ralph lauren uk  story: san antonio spurs  read gooses  the mia jersey  unmarried married air max 90  again, timberland outlet  married louboutin  the burberry outlet online  know tory burch sandals  how nfl falcons  to tiffany jewelry  understand ray ban zonnebril  the Nike Free Shoes  business gsw jerseys  of nfl bills  marriage, chanel  do milwaukee bucks  not uggs  understand you abercrombie  can hollister clothing store  not get relojes especiales  married. nike roshe  They love ralph lauren online  the insanity calendar  story of clothing websites  a rolex  three-year, ready los angeles clippers  to get nike mercurial vapor  married. Before ugg boots clearance  marriage a nike mercurial  month adidas neo  he nfl ravens  disappeared, barbour outlet  leaving nike.dk  behind tiffany and co  a adidas.se  note: beats by dre  I'm abercrombie  sorry, giuseppe zanotti  so salomon schuhe  I good nike outlet  enough louboutin  when wedding dresses  I nike outlet  marry you. reebok  Her burberry handbags  grief hermes bags  tear strip.Two years zapatillas nike  later, lulu lemon  he p90x workout schedule  was wearing burberry online shop  a the north face  suit polo ralph lauren outlet online  and driving chicago bulls  a nets jersey  limited nfl rams  edition ray ban sunglasses outlet  sports adidas  car swarovski australia  back, utah jazz  but celine handbags  found ray ban  that she softball bats  had michaelkors.com  married oakley outlet  an ordinary michael kors outlet  worker pandora  and toms outlet  have nike huaraches  had nike air max  children. prada  He true religion jeans women  was a new balance store  bit angry, you tiffany and co  would polo ralph lauren  rather marry pandora bracelets  a coach outlet  such kate spade  a orlando magic  nothing replica watches  of north face jackets  what nike shoes outlet  people tommy hilfiger online shop  are longchamp handbags  not flat iron  willing pistons jersey  to north face pas cher  wait burberry handbags  for nfl jaguars  me. coach factory outlet online  Woman smiled nfl bengals  gently, polo ralph lauren outlet  we do knicks jerseys  not baseball bats  need anything, love swarovski  is calvin klein  enough! uggs  Man mcm handbags  suddenly longchamp  understood.The second story: air max  the nfl packers  boy cheap ray ban  on fake rolex  his gucci outlet  wife nfl colts  after marriage oakley  than air jordan shoes  before michael kors outlet  marriage abercrombie and fitch  better. A nop jerseys  gathering of friends levis outlet store  laughed coach bags  at him: portland trail blazers  how jordan release dates  married michael kors handbags  also so tired. oakley sunglasses outlet  Samsam ralph lauren shirts  smile nba jerseys  he prada outlet  said: prada handbags  "Before ray-ban sunglasses  marriage, dre beats  a michael kors outlet online  lot occhiali oakley  of michael kors australia  the boys michael kors bags  want ugg australia  to giuseppe shoes  go toms outlet  after gucci shoes outlet  her, abercrombie  she would cheap oakley sunglasses  have ralph lauren factory store  a beats audio  lot burberry outlet  of louboutins  good ray ban sunglasses  boys, burberry handbags  I jimmy choo shoes  only hair straightener  better hermes outlet  for her cheap true religion  to coach outlet online  catch cheap oakley  her; jordan shoes  married www.tommyhilfiger.nl  to her less michael kors bags  and ugg  less oakley  good burberry outlet online  boys, mcm backpack outlet  I tiffany and co  only air max 90  better for chi hair  her minnesota timberwolves  to gucci  let her ralph lauren  loss. gucci handbags  I swarovski  just air max 2014  did coach factory outlet  everything ray ban wayfarer  to make her oakley  happy. ferragamo shoes  "Then, coach outlet sale  all new balance shoes  present juicy couture  friends are oakley sunglasses outlet  silent, polo ralph lauren  no abercrombie fitch  ridicule, michael kors  only uggs outlet  admiration.The memphis grizzlies  third michael kors handbags  story: longchamp outlet  the canada gooses outlet  husband air max 95  care   about cheap oakley  to moncler women jackets  give prada sunglasses  birth nike store  at the uggs  bedside ray ban  of true religion  his wife. suns jerseys  Wife: ferragamo  "Do ray ban outlet  you want nfl redskins  a shoes on sale  boy ghd hair straighterners  or a swarovski  girl?" air max 2015  Husband: beats audio  "If it michael kors outlet online  is a nike air max 2014  boy, wedding dresses uk  we kobe bryant jersey  Yeliang true religion jeans outlet  protect you; the north face  if polo ralph  you are michael kors outlet online sale  a longchamp  girl, oakley prescription  I wholesale handbags  Niangliang tiffany und co  protect you."Say that marriage michael kors  is toms shoes  the nike free 5.0  tomb mizuno running shoes  of timberland homme  love. nba jerseys  It nba jerseys  turned out to nfl eagles  be gucci shoes  a good nike air max  woman to coach handbags outlet  marry nike outlet  the ugg  wrong Lang! burberry bags outlet  Love marc jacobs handbags  is hollister co  not wealth, uggs  but to uhren  each michael kors bags  other. christian louboutin shoes  The marriage is converse chucks  a oakley sunglasses  happy michael kors bags  thing, instyler ionic styler  as long cleveland cavaliers jerseys  as abercrombie and fitch kids  you sac jerseys  will iphone 5 cases  treasure married man.Then nfl seahawks  your mcm outlet  house, you sleep adidas superstar  just oakley sunglasses  a coach factory outlet online  bed; cheap oakley sunglasses  no louboutin outlet  matter nfl browns  how michael kors outlet online  good katespade outlet  the ralph lauren polo  car, nfl jets  speeding gucci mens shoes  tickets nike huaraches  or nfl vikings  eat; pandora jewellery  then your coach purses  bag, only michael kors outlet online sale  a michael kors canada  show denver nuggets   off their coach factory online  wealth ugg australia  more indiana pacers  features than adidas sneakers  plastic houston rockets  bags.Not valentino shoes outlet  to the north face  pursue mac cosmetics  not, replica handbags  forgetting air max  their dallas mavericks jersey  existing bcbg max azria  happiness, air jordans  contentment!Choose the wedding dresses uk  person coach outlet store  you love, babyliss  or nfl giants  choose to russell westbrook jersey  love vans outlet  you, thomas sabo  how roche run  to choose nike air  love, michael kors  choose what hollister kids  kind   of happiness, charlotte hornets jersey  the mcm bags  choice is converse outlet  a roshe run  permanent roshe run  proposition, salvatore ferragamo  choose the north face outlet  what, nike air max  or what is selected, wedding dresses  sometimes, michael kors purses  we omega watches  need abercrombie.com  to rayban sunglasses  keep nike tn requin  a cool head, uggs  we replica watches  need marc jacobs outlet  to north face backpacks  make nfl jerseys  hard replica watches  choice, coach factory outlet online  but gafas oakley  there jerseys from china  is hilfiger  a coach purses  happiness for scarpe hogan  </P>
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|粤ICP备13051116号|cubie.cc---深刻的嵌入式技术讨论社区

GMT+8, 2024-4-20 15:22 , Processed in 0.035364 second(s), 16 queries .

Powered by Discuz! X3.4

© 2001-2012 Comsenz Inc. | Style by Coxxs

返回顶部