当前位置: 首页 > news >正文

读取传感器发来的1Byte数据:分低位先行和高位先行的处理方法

目录

一、写在前面

二、伪代码的逻辑实现

1、从高位到低位

2、从低位到高位


一、写在前面

在接收数据之前我们需要事先知道数据的发送规则,是高位先行还是低位先行,并按照规则接收数据,否则收到的数据很可能是错的

高位先行:先发数据位高的数据,

低位先行:先发数据位低的数据

从波形反推数据:高位先行波形从左往右看,数据从左往右写

从波形反推数据:低位先行波形从左往右看,数据从右往左写

二、伪代码的逻辑实现

1、从高位到低位

u8 Read_Byte()
{u8 tmp = 0x80;  //1000 0000u8 Byte = 0;for( tmp = 0x80; tmp > 0; tmp >>= 1 ){if( Read_Bit() == 1 )            //读取1Bit数据         Byte |= tmp; elsedata &= ~tmp;}return Byte;
}

2、从低位到高位

u8 Read_Byte()
{u8 tmp = 0x01;  //1000 0000u8 Byte = 0;for( tmp = 0x01; tmp < 0x80; tmp <<= 1 ){if( Read_Bit() == 1 )               //读取1Bit数据         Byte |= tmp;elseByte &= ~tmp;}return Byte;
}

http://www.dtcms.com/a/179741.html

相关文章:

  • Web前端VSCode如何解决打开html页面中文乱码的问题(方法2)
  • 【MySQL】数据库、数据表的基本操作
  • Python MNE-Python 脑功能磁共振数据分析
  • 第十五章,SSL VPN
  • 在 Spring Boot 中选择合适的 HTTP 客户端
  • React Native 前瞻式重大更新 Skia WebGPU ThreeJS,未来可期
  • CI/CD面试题及答案
  • WEB前端表单及表格标签综合案例
  • 青少年编程与数学 02-019 Rust 编程基础 03课题、变量与可变性
  • 禁止Pydda默认下载数据
  • 第四天 从CAN总线到Spark/Flink实时处理
  • 解构C++高级命名空间:构建空间作用域·控制兼容
  • 初等数论--欧拉函数积性的证明
  • 新闻发稿筛选媒体核心标准:影响力、适配性与合规性
  • 记录一次使用thinkphp使用PhpSpreadsheet扩展导出数据,解决身份证号码等信息科学计数法问题处理
  • 【MySQL】存储引擎 - FEDERATED详解
  • 笔记,麦克风的灵敏度
  • allure生成测试报告(搭配Pytest、allure-pytest)
  • 遗传算法(GA)
  • 第十六章,网络型攻击防范技术
  • 传统数据展示 vs 可视化:谁更打动人心?
  • TCP套接字通信核心要点
  • 多线程面试题总结
  • ⭐️⭐️⭐️【课时1:大模型是什么?】学习总结 ⭐️⭐️⭐️ for《大模型Clouder认证:基于百炼平台构建智能体应用》认证
  • NetSuite Saved Search如何在Criteria中利用Expressions处理不同Transaction之间的关系?
  • 【深度学习新浪潮】智能追焦技术全解析:从算法到设备应用
  • 集群/微服务/分布式
  • 芋道框架 账号未登录、租户标识未传递
  • 华为云Flexus+DeepSeek征文|从开通到应用:华为云DeepSeek-V3/R1商用服务深度体验
  • 七、Hadoop 历史追踪、数据安全阀与 MapReduce初体验