一聚教程网:一个值得你收藏的教程网站

热门教程

asp.net c serialPort显示数据代码

时间:2022-06-25 05:05:45 编辑:袖梨 来源:一聚教程网

asp教程.net c serialport显示数据代码
//serial port就是所谓的串口,或者串行口。是电脑的接口之一,连接某些设备用的,如果你不需要仔细了解它的话,把它当成跟usb类似的接口就可以了。只是有时候串口不支持热插拔

void comm_datareceived(object sender, serialdatareceivedeventargs e)  
  {  
  int n = comm.bytestoread;//先记录下来,避免某种原因,人为的原因,操作几次之间时间长,缓存不一致  
  byte[] buf = new byte[n];//声明一个临时数组存储当前来的串口数据  
  received_count += n;//增加接收计数  
  comm.read(buf, 0, n);//读取缓冲数据  
  builder.clear();//清除字符串构造器的内容  
  //因为要访问ui资源,所以需要使用invoke方式同步ui。  
  this.invoke((eventhandler)(delegate  
  {  
  //判断是否是显示为16禁止  
  if (checkboxhexview.checked)  
  {  
  //依次的拼接出16进制字符串  
  foreach (byte b in buf)  
  {  
  builder.append(b.tostring("x2") + " ");  
  }  
  }  
  else  
  {  
  //直接按ascii规则转换成字符串  
  builder.append(encoding.ascii.getstring(buf));  
  }  
  //追加的形式添加到文本框末端,并滚动到最后。  
  this.txget.appendtext(builder.tostring());  
  //修改接收计数  
  labelgetcount.text = "get:" + received_count.tostring();  
  }));  
  }

  
  //方法二
  
 

private void serialport1_datareceived(object sender,serialdatareceivedeventargs e)
  {
  system.threading.thread.sleep(100);
  int bytes = sepor.bytestoread;
  byte[] buffer=new byte[bytes];
  if (bytes == 0)
  {
  return;
  }
  sepor.read(buffer,0,bytes);
  string srt = string.empty;
  foreach(byte a in buffer)
  {
  srt += a.tostring();
  }
  textbox1.text =srt;
   
  }


 private void form1_load(object sender, eventargs e)
  {
  sepor.portname = "com4"; //选择串口com4
  sepor.baudrate = 4800; //设置通信口参数
  sepor.databits = 7; //数据位
  sepor.parity = system.io.ports.parity.none; //校验位 无校验
  sepor.stopbits = system.io.ports.stopbits.one; //停止位 1位
  sepor.readbuffersize = 1024;

  sepor.open();
  sepor.readexisting(); //设置input从接收缓冲读取全数据
  sepor.receivedbytesthreshold = 1; //设置引发oncomm事件的字节长度
  sepor.discardinbuffer(); //清楚接受缓冲区
  timer1.start();
  }

热门栏目