VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > VB.net教程 >
  • 串口接收16进制,最后保存成char*

serial.cpp中的接收:
 


  1.  
    serial_read(std::string &rcv_buf) {
  2.  
    unsigned char msg;
  3.  
    int ret, pos=0;
  4.  
    char mn[2];
  5.  
     
  6.  
    tcflush(serial_fd_, TCIOFLUSH);//清掉串口缓存
  7.  
    fcntl(serial_fd_, F_SETFL, 0);
  8.  
    while (1) {
  9.  
    ret = read(serial_fd_, &msg, 1);
  10.  
    //printf("%X ",msg);
  11.  
    if ((pos > 0 && msg == 0x55) || pos >= 1024){
  12.  
    rcv_buf = rcv_buf.erase(rcv_buf.length()-1,1);
  13.  
    return pos;
  14.  
    }
  15.  
    if (pos > 0) {
  16.  
    sprintf(mn,"%02x",msg);
  17.  
    rcv_buf=rcv_buf+mn+" ";
  18.  
    pos++;
  19.  
    }
  20.  
    if (pos == 0 && msg == 0x55) {
  21.  
    sprintf(mn,"%x",msg);
  22.  
    rcv_buf=rcv_buf+mn+" ";
  23.  
    pos++;
  24.  
    }
  25.  
    if (-1 == ret){
  26.  
    return pos;
  27.  
    }
  28.  
    }
  29.  
    }

用户函数中对string进行操作:


  1.  
    string msg;
  2.  
    serial_read(msg);
  3.  
    char * byteStr = new char[strlen(msg.c_str())+1];
  4.  
    strcpy(byteStr, msg.c_str());
 

牛皮牛皮,记录记录


相关教程