日期:2014-05-18  浏览次数:20717 次

C# 有关串口问题??
只需要接受数据!我是用串口精灵模拟的串口信号!不知道好不好用的啊!大致代码如下,运行没反应啊!
  private void InitComPort()
  {

  if (axMSComm1.PortOpen)

  axMSComm1.PortOpen = false;//初始化

  axMSComm1.InputLen = 0; //清除接收缓冲区

  axMSComm1.CommPort = 1;//设置端口号为COM1

  axMSComm1.RThreshold = 1; //每接收一个字符则激发OnComm()事件

  axMSComm1.Settings = "9600,n,8,1"; //端口设置

  axMSComm1.DTREnable = true; //置DTR有效

  axMSComm1.RTSEnable = true; //置RTS有效

  axMSComm1.Handshaking = MSCommLib.HandshakeConstants.comNone;

  axMSComm1.InputMode = MSCommLib.InputModeConstants.comInputModeText; //文本

  axMSComm1.InputMode = MSCommLib.InputModeConstants.comInputModeBinary; //二进制

  axMSComm1.NullDiscard = false;

  axMSComm1.OnComm += new EventHandler(axMSComm1_OnComm); //执行一个OnComm事件

  axMSComm1.PortOpen = true; //打开串口

  }

  
  //接收数据
  //每接收一个字符则激发OnComm()事件
  private void axMSComm1_OnComm(object sender, System.EventArgs e)
  {
  byte[] indata = new byte[100];
  string rd = "";
  rd += axMSComm1.Input;
  rd = this.textBox3.Text;
   
  }


------解决方案--------------------

axMSComm1.InputMode = MSCommLib.InputModeConstants.comInputModeText; //文本 

axMSComm1.InputMode = MSCommLib.InputModeConstants.comInputModeBinary; //二进制 

====================================
这两句什么意思,干嘛呀。把二进制的屏蔽掉看看如何。


------解决方案--------------------
没看懂 如果你用SerialPort类 的话我就能看懂了 呵呵 我也刚学串口编程 一起共勉啊