如题

解决方案 »

  1.   

    别用这个,微软有串口的Class可以使用,很好用的
      

  2.   

    http://hi.baidu.com/zhlak/blog/item/7f89d6cc2395d31401e928c1.html
      

  3.   

    添加mscomm控件(COM组件:MSCOMM32.OCX)        //初始化控件
            public static void InitAxSign(ref AxMSCommLib.AxMSComm AxMSComm1)
            {
                    AxMSComm1.RThreshold=9;           //卡长度
                    AxMSComm1.CommPort = 1;  //端口1
                    AxMSComm1.RThreshold = 10;          //卡长度
                    AxMSComm1.InBufferSize = 10;
                    AxMSComm1.Settings = "9600,n,8,1"; //速率,奇偶效验
                    AxMSComm1.PortOpen = true; //打开端口
                    AxMSComm1.InputLen = 0;
                    AxMSComm1.InBufferCount = 0;
     
                    this.AxMSComm1.OnComm += new System.EventHandler(this.AxMSComm1_OnComm);
            }        //读取数据(卡号)
            private void AxMSComm1_OnComm(object sender, System.EventArgs e)
            {            if(this.AxMSComm1.CommEvent!=1 && this.AxMSComm1.PortOpen==true)
                {
                    string strCardNo;
                    strCardNo = "";
                    strCardNo = this.AxMSComm1.Input.ToString().Replace(" ",""); //去除空格
                    strCardNo = strCardNo.Replace("\n","").Replace("\r",""); //去除控制字符
                    strCardNo = strCardNo.Replace("?","").Replace("s","").Replace("A","").Replace(";",""); //去除其他字
                }
            }
      

  4.   

    如果是.net2.0 的话,直接用微软的SerialPort类
      

  5.   

    [email protected],给我发邮件,发给你!
      

  6.   

    直接用微软的SerialPort类 看看MSDN的SerialPort类说明,基本没必要用MSCOMM
      

  7.   

    [email protected]已发!
    [email protected]已发!
      

  8.   


    要看具体情况!我以前用.NET2.0带的SerialPort控件实现串口发送接收数据,但是总是丢失数据或发送失败的一些情况,头疼了好久!后来改用MSCOMM32后就非常好了,至今都没有出现过问题!MSCOMM32是以前VB6.0带的一个用C++写的控件!
    好像.NET对底层硬件的操作和以前的不一样了!
      

  9.   

    我开了线程接数据了,但是我的界面还是反应慢,如果串口发的速度特别快,还是无响应,用调试助手就不会出这问题,所以肯定是我程序的错。在csdn的下载里搜到了C#的串口助手源代码,但是积分不够,下不了……