通讯串口

1.从工具箱里拖一个控件到窗体上,配置它的属性或者在代码里设置 如下:

private void InitComPort()
  {
   try
   {
    axMSComm1.CommPort=3;//我这里用的是com3

    if(axMSComm1.PortOpen)
     axMSComm1.PortOpen = false;

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

    axMSComm1.Settings = "38400,n,8,1";

    axMSComm1.DTREnable = true;

    axMSComm1.Handshaking = MSCommLib.HandshakeConstants.comNone;  

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

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

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

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

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

    this.msg.Text = "设备已成功启动!";
   }
   catch
   {
    this.msg.Text = "设备启动失败!";
   }
  }

2.发送数据:

private void SendData()
  {
   try
   {
    //二进制
    byte[] byOut = new byte[2];
    byOut[0] = 0x01;
    byOut[1] = 0x02;
    axMSComm1.Output = byOut; //向缓冲区写入数据
   }
   catch(Exception ex)
   {
    MessageBox.Show(ex.Message,"Error",MessageBoxButtons.OK,MessageBoxIcon.Error);
   }
  }

3.接收数据

/// <summary>
  /// 每接收一个字符则激发OnComm()事件
  /// </summary>
  /// <param name="sender"></param>
  /// <param name="e"></param>
  private void axMSComm1_OnComm(object sender, System.EventArgs e)
  {
   axMSComm1.InputMode = MSCommLib.InputModeConstants.comInputModeBinary; //二进制
   axMSComm1.InputLen = 0; 
   byte[] indata = (byte[])axMSComm1.Input;//接收数据

  }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值