苏飞论坛

 找回密码
 马上注册

QQ登录

只需一步,快速开始

分布式系统框架(V2.0) 轻松承载百亿数据,千万流量!讨论专区 - 源码下载 - 官方教程

HttpHelper爬虫框架(V2.7-含.netcore) HttpHelper官方出品,爬虫框架讨论区 - 源码下载 - 在线测试和代码生成

HttpHelper爬虫类(V2.0) 开源的爬虫类,支持多种模式和属性 源码 - 代码生成器 - 讨论区 - 教程- 例子

查看: 4458|回复: 4

[学生提问] 请问如何转换 串口接受的数据?

[复制链接]
发表于 2017-9-14 13:53:00 | 显示全部楼层 |阅读模式
本帖最后由 xustrive 于 2017-9-14 13:54 编辑


问题是这样的,单片机向我发送一串数据, 我能将其拿去做CRC8 的校验. 不知道怎么把发送过来的数据转换成byte[] 数组减去最后两位CRC校验值 传给CRC8函数进行计算.

private void port_DataReceived(object sender, SerialDataReceivedEventArgs e)             //串口接收事件
        {
            try
            {
                System.Threading.Thread.Sleep(100);//时间延迟 防止丢失
                if (s.BytesToRead != 0)
                {
                    byte[] data = new byte[s.BytesToRead];
                    s.Read(data, 0, data.Length);

                    for (int i = 0; i < data.Length; i++)
                    {
                      string str = Convert.ToString(data, 16).ToUpper();
                      sn.Add((str.Length == 1 ? "0" + str : str));
                }
                }

            }
            catch
            {
                MessageBox.Show("输出异常");
            }
        }


--------------------------------CRC8 的校验. --------------------------------
        public static byte CRC8(byte[] buffer)
        {
            byte crc = 0;
            for (int j = 0; j < buffer.Length; j++)
            {
                crc ^= buffer[j];
                for (int i = 0; i < 8; i++)
                {
                    if ((crc & 0x01) != 0)
                    {
                        crc >>= 1;
                        crc ^= 0x8c;
                    }
                    else
                    {
                        crc >>= 1;
                    }
                }
            }
            return crc;
        }   //CRC8 计算



1. 开通SVIP会员,免费下载本站所有源码,不限次数据,不限时间
2. 加官方QQ群,加官方微信群获取更多资源和帮助
3. 找站长苏飞做网站、商城、CRM、小程序、App、爬虫相关、项目外包等点这里
发表于 2017-9-14 14:20:24 | 显示全部楼层
你接收到是什么格式的数据?
发表于 2017-9-14 14:22:20 | 显示全部楼层
这个貌似安位剔除就行了吧。
 楼主| 发表于 2017-9-14 15:02:38 | 显示全部楼层
发过来的数据转换成字符串是这样输出的   253 251 14 255 255 255 255 255 255 6 22 8 136 136 136 3 5
 楼主| 发表于 2017-9-18 11:31:16 | 显示全部楼层
站长苏飞 发表于 2017-9-14 14:20
你接收到是什么格式的数据?

感谢  解决了。 基础不扎实走了不少弯路。 数据直接可以处理。
您需要登录后才可以回帖 登录 | 马上注册

本版积分规则

QQ|手机版|小黑屋|手机版|联系我们|关于我们|广告合作|苏飞论坛 ( 豫ICP备18043678号-2)

GMT+8, 2024-12-27 05:20

© 2014-2021

快速回复 返回顶部 返回列表