现在的位置: 首页 > 综合 > 正文

在VS2005中使用axmscomm控件实现串口通讯

2014年02月09日 ⁄ 综合 ⁄ 共 2365字 ⁄ 字号 评论关闭

要使用vs实现串口通讯,目前有几种方法,serialPort和mscomm。

 

先讲mscomm

首先如果你的vs05的工具栏中没有microsoft communications control, 请右键点击工具栏选择添加 / 移除项,在COM组件中勾选microsoft communications control version 6.0 .

添加控件成功后将控件拖到winForm中,注意设置控件属性 settings : 9600 , n , 8,1(2)。这4个参数为[BaudRate][Parity][DataBits][StopBits] 即通讯格式中的波特率、校验位、数据位和停止位。

 

看代码:

  1. /// <summary>
  2.         /// 打开com端口
  3.         /// </summary>
  4.         /// <param name="comm"></param>
  5.         private void OpenComm(AxMSCommLib.AxMSComm comm){
  6.         
  7.             comm.CommPort = (short)1;   //设置端口为COM1     
  8.             try
  9.             {
  10.                 comm.PortOpen = true;
  11.                 
  12.             }
  13.             catch{
  14.                 MessageBox.Show("openport error");
  15.             }
  16.         
  17.         }
  18.         /// <summary>
  19.         /// 组合字符串
  20.         /// </summary>
  21.         /// <returns></returns>
  22.         private string toMarsh(){
  23.             string ss = textBox2.Text;
  24.             string tm = (char)20+textBox3.Text+(char)13+(char)22;
  25.             string values = tm+ss+((char)13).ToString()+((char)1).ToString();
  26.             return values;
  27.         
  28.         }   //字符串中的char型是marsh喷墨打印机的指令代码。
  29.                    private void button1_Click(object sender, System.EventArgs e)
  30.         {
  31.             axMSComm1.Output = toMarsh();  //把toMarsh()方法生成的字符串发送到axmscomm的output中
  32.         }

以上代码只是一个简单的程序。向marsh喷墨打印机发送了一个字符串用于打印。

axmscomm还可以设置其他的属性

 

  1.  if (this.axMSComm1.PortOpen == true)
  2.                 this.axMSComm1.PortOpen = false;
  3.             this.axMSComm1.CommPort = 1;//端口 
  4.             this.axMSComm1.Settings = "9600,n,8,1";//通信参数    
  5.             this.axMSComm1.InputMode = MSCommLib.InputModeConstants.comInputModeBinary;//接收数据的类型
  6.             this.axMSComm1.RThreshold = 1; //接收缓冲区中接收到一个字符,就产生一次OnComm事件
  7.             //this.axMSComm1.OnComm += new EventHandler(axMSComm1_OnComm);  //注册一个OnComm事件
  8.             this.axMSComm1.SThreshold = 0;//当发送缓冲区中字符数小于该值时,MSComm控件设置Commevent属性为ComEvSend,并产生OnComm事件。若Sthreshold属性设置为0,则不产生OnComm事件 
  9.             this.axMSComm1.RTSEnable = true;//启用请求发送 
  10.             this.axMSComm1.DTREnable = true;//接收就绪             
  11.             this.axMSComm1.InputLen = 0;//一次从接收缓冲区中读取字节数,// 使用Input時為讀取全部資料
  12.             this.axMSComm1.NullDiscard = false;
  13.             this.axMSComm1.PortOpen = true//打开端口
  14. http://blog.csdn.net/imliujie/archive/2007/03/19/1533243.aspx

关于serialPort的使用方法可以参考

http://www.programfan.com/club/showpost.asp?id=29653

http://www.17xie.com/book-94536548.html

讲的很详细。

 

 

抱歉!评论已关闭.