打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
上位机串口通信

http://blog.sina.com.cn/s/blog_9faf08510101dhk0.html

2013


  private void serialPort1_DataReceived(objectsender, System.IO.Ports.SerialDataReceivedEventArgs e)
       {

           //先读取下位机发来的数据,然后就比较
           //如果是呼叫我,则回复他
           //下位机接到回复后就发数据过来,这边要接收
           //吧接受的数据与该用户的之前的数据进行比较
           //如果是减肥成功了,就form5,否则就form4
           //最后就插入该用户刚刚测试的数据

           if (serialPort1.IsOpen == false)
           {
               return;
           }
          Thread.Sleep(2000);
           int c = serialPort1.BytesToRead; //获取缓冲区中的字节数
           //int n = serialPort1.ReadBufferSize;
           byte[] buf = new byte[c];//声明一个临时数组存储当前来的串口数据
           StringBuilder strbuilder = new StringBuilder(buf.Length);
           serialPort1.Read(buf, 0, c);//读取缓冲数
           //data =System.Text.Encoding.ASCII.GetString(buf);//将RevData中的数据转换成字符串
           string str2="";
           int data = 0;
           if (c == 1)
           {
               foreach (byte b in buf)
               {
                   strbuilder.Append(b.ToString("X2"));//如果两个数10和26,正常情况十六进制显示0xA、0x1A,这样看起来不整齐,为了好看,我们可以指定X2,这样显示出来就是:0x0A、0x1A。
               }
               data = 0;
               //data =int.Parse ( strbuilder.ToString());
               data = Convert.ToInt32(strbuilder.ToString(),16);
             //MessageBox.Show(c+" " + data);
           }
           else if(c>=2)
           {
               for (int i = 0; i <= 1;i++ )
                  
                   {
                       string strtemp =Convert.ToString(Convert.ToInt32(buf[i].ToString("X2"), 16), 2);//如果两个数10和26,正常情况十六进制显示0xA、0x1A,这样看起来不整齐,为了好看,我们可以指定X2,这样显示出来就是:0x0A、0x1A。
                       int str_length = strtemp.Length;
                       if (str_length < 8)
                       {
                           int temp = 8 - str_length;
                           for (int ii = 1; ii <= temp; ii++)
                           {
                               strtemp = "0" + strtemp;
                           }
                       }
                       str2 += strtemp;

                   }
               data=Convert.ToInt32(str2, 2);
               MessageBox.Show("称得数据:"+data+"(百克)");
               
           }

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
一个.Net加密解密类-程序开发-红黑联盟
如何清空StringBuilder
C# 串口操作系列(3)
VB.NET 串口访问之一
C#与PLC通信开发之三菱FX系列PLC通信协议详解
DES加密解密(JavaScript
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服