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

自己有网站源码就可以建设吗seo优化排名服务

自己有网站源码就可以建设吗,seo优化排名服务,大型外贸商城网站建设,西安做网站公司MSB 先发的串行数据收发知识点整理 在嵌入式通信或低级协议设计中,数据通常需要按照位(bit)进行串行传输。其中 “MSB 先发”(Most Significant Bit First) 是常见的数据传输方式,即 最高位(MS…

MSB 先发的串行数据收发知识点整理

在嵌入式通信或低级协议设计中,数据通常需要按照位(bit)进行串行传输。其中 “MSB 先发”(Most Significant Bit First) 是常见的数据传输方式,即 最高位(MSB)最先发送,最低位(LSB)最后发送

1. MSB 先发串行通信的基本概念

在串行通信中,数据是 按位(bit)依次发送的

  • MSB 先发(Most Significant Bit First):最高位最先传输,最低位最后传输。
  • LSB 先发(Least Significant Bit First):最低位最先传输,最高位最后传输。

MSB 先发的传输方式
假设数据 0xA5(十六进制)即 1010 0101(二进制):

发送顺序(MSB 先发):
1 0 1 0  0 1 0 1  (最高位 → 最低位)

LSB 先发的传输方式

发送顺序(LSB 先发):
1 0 1 0  0 1 0 1  (最低位 → 最高位)

本文只讨论 MSB 先发 的情况。

2. MSB 先发的串行数据发送代码

目标:按位输出 8-bit 数据,每次发送 1 位

#include <stdio.h>/* * 串行数据发送(高位先发,MSB First)* 目标:按位输出 8-bit 数据,每次发送 1 位*/void sendData(unsigned char data) {printf("发送数据: 0x%X\n", data);// 逐位发送数据,从最高位(MSB)到最低位(LSB)for (int i = 7; i >= 0; i--) {unsigned char bit = (data >> i) & 0x01;  // 取出最高位printf("%d", bit);  // 输出当前位}printf("\n");
}int main() {unsigned char data = 0xA5;  // 8-bit 数据 (1010 0101)sendData(data);return 0;
}

3. 代码解析

  1. sendData(unsigned char data)

    • 传入 8-bit 数据 data,并将其按位发送。
  2. 逐位提取和发送

    • 使用 for (int i = 7; i >= 0; i--),确保从 最高位(MSB) 依次处理到 最低位(LSB)
    • bit = (data >> i) & 0x01; 通过 右移 i 并与 0x01 按位与,获取 data 的第 i 位。
    • printf("%d", bit); 模拟数据线上传输 01

4. MSB 先发的串行数据接收代码

目标:模拟从串行输入接收 8-bit 数据,并存储到变量中

#include <stdio.h>/* * 串行数据接收(高位先收,MSB First)* 目标:模拟从串行输入接收 8-bit 数据,并存储*/unsigned char receiveData(unsigned char data) {unsigned char received = 0;  // 存储接收的数据printf("接收数据: 0x%X\n", data);// 逐位接收数据,从最高位(MSB)到最低位(LSB)for (int i = 7; i >= 0; i--) {received = (received << 1) | ((data >> i) & 0x01);  // 左移并存入新位}return received;
}int main() {unsigned char data = 0xA5;  // 8-bit 数据 (1010 0101)unsigned char received = receiveData(data);printf("重构后的数据: 0x%X\n", received);return 0;
}

5. 代码解析

  1. receiveData(unsigned char data)

    • 传入 模拟接收的 8-bit 数据 data,然后进行 按位接收 处理。
  2. 逐位提取和存储

    • for (int i = 7; i >= 0; i--) 确保从 最高位 依次处理到 最低位
    • received = (received << 1) | ((data >> i) & 0x01);
      • 先左移 received 1 位,为新位腾出空间。
      • 提取 data 的第 i,并存入 received 变量。

6. 代码输出

如果运行这两段代码,会得到:

发送数据: 0xA5
10100101接收数据: 0xA5
重构后的数据: 0xA5

说明数据正确地 按位发送并接收,且 数据完整性保持不变

7. 关键知识点总结

MSB 先发的串行数据发送

  1. 数据按位逐次发送,最高位(MSB)先发。
  2. 右移 i 位 & 0x01 提取当前位,再输出。
  3. 可以通过时钟信号触发传输(在实际硬件上)。

MSB 先发的串行数据接收

  1. 数据按位逐次接收,最高位(MSB)先收。
  2. 左移 received 1 位,再存入新位,确保数据位置正确。
  3. 最终数据应与原始 data 相同,保证正确传输。

MSB 先发 与 LSB 先发

  • MSB 先发:最高位先发送,适用于 SPI、I²C、RS232 等多种协议。
  • LSB 先发:最低位先发送,部分 UART、某些专用协议可能采用。

8. 适用场景

  • 嵌入式系统(单片机、ARM)
  • 低级硬件通信(I²C、SPI、UART)
  • 数字信号处理(DSP)
  • 软件模拟串行通信(Bit-Banging)

(完)

http://www.dtcms.com/wzjs/584661.html

相关文章:

  • 大连手机自适应网站建设费用网站集约化建设的目的
  • 南阳网站建设培训网站建设朝阳
  • 兰州网站建设兰州网站上的销售怎么做的
  • 搭建一个购物网站seo怎么做教程
  • dedecms wap网站模板湖南做网站kaodezhu
  • 遵义市建设局网站wordpress升级php版本崩溃
  • 如何优化m网站wordpress 幻灯片插件
  • 洛阳公司青峰做的企业网站六安网新闻
  • 电商网站规划的开发背景网站硬件方案
  • 新民电商网站建设价格咨询wordpress菜单标题属性
  • 怎么做网站文章伪原创盘锦网站开发
  • 新加坡网站开发公司网站建设维护文档
  • 高端网站推荐镇江网站建设介绍服务
  • 绵阳商城网站建设哪些网站做的最有特色
  • h5微网站建设多少钱宝安附近公司做网站建设多少钱
  • 网站设计三原则本地视频怎么生成链接
  • 2015网站备案没下来现在有哪些网址
  • 太仓网站建设公司广东省广州市白云区广云路11号
  • 可以做四级的网站广州网络推广建站
  • 一流的龙岗网站设计学ps网课平台哪个好
  • 番禺制作网站设计网站服务费怎么做分录
  • 定制型网站 成功案例重庆网站建设帝维科技
  • 中富国建设有限公司网站在线设计软件
  • 广西网站建设哪家有制作公司官网西安
  • 个人网站和企业网站的区别中国卫生人才网
  • 做门户网站私活多少钱专业app开发定制公司
  • 个人网站域名快速备案wordpress小程序 jwt
  • 广州技术支持 网站建设长沙网络推广平台
  • 网站备案有什么好处理wordpress列表分页代码
  • iis 编辑网站绑定哪家公司网站建设口碑好