单片机实验2
一、IIC总线协议1.简介定义是一种广泛用于嵌入式系统的同步、串行、半双工通信协议用于在同一块电路板上的集成电路之间进行通信。I2C总线是一种物理通信架构用于连接多个设备实现设备之间的数据传输。I2C协议是一套规则定义了IIC总线上数据通信的过程包括如何启动通信、传输数据、应答信号、结束通信等。特点1.双线通信2.同步通信3.串行数据传输4.半双工传输5.主从架构6.支持多主多从7.从机地址唯一性8.速度灵活2.协议规则只能由主机产生a.起始信号SCL线高电平的时候SDA线产生下降沿b.终止信号SCL高电平的时候SDA线产生上升沿。主机和从机都能产生:a.应答信号:时钟线SCL高电平期间SDA低电b.非应答信号SCL高电平期间SDA高电平。总线空闲SCL和SDA一直为高电平数据有效在时钟线高电平期间只能读数据数据线电平不能变低电平期间可以写入数据数据线电平才能变数据的传输单元IIC线以字节为单位进行传输顺序为高位开始传输由主机发从机地址为7位左移1位加上数据传输方向位0写 1读3.数据手册从机地址计算公式精度选择指令通信方式主机先写发送设备地址写方向 寄存器/命令字节Command从机应答ACK。主机再读重新发起起始条件或重复起始发送设备地址读方向从机应答后返回 16 位数据MSB 在前。带校验数据之后跟随 CRC8用于检查读数据的完整性。终止主机接收 CRC8 后应答ACK最后以停止条件P结束。采集时间4.温湿度数据读取ioc配置二、SPI协议1.简介定义SPI通信是一种同步通信根据时钟信号设备得以在正确的时机发送和接收数据从而确保数据传输的有效性以及数据传输的速度。时钟信号由主设备产生通过SCK引脚输出主从设备的通信便根据SCK上的时钟信号进行数据收发。边沿触发总线接口 ( 引脚 ) SCK 、 MOSI master out slave in、 MISO master in slave out、 CS CS信号线进行从机的选择遵循一主多从或者一主一从的结构数据帧长度 8bit 或 16bit 数据传输的格式 MSB 或 LSB。 MSB表示先发送最高位LSB表示发送最低位。控制器可以自由配置先发高位还是低位指定当前要和哪一个设备通信只唤醒选中的那一个其他设备保持沉默不抢数据SPI 分离 GPIO 片选接法SCK、MOSI、MISO直接连通 MCU 硬件 SPI 外设引脚与从设备对应引脚属于 SPI 硬件专用功能脚。CS 片选不使用 SPI 外设自带 CS 引脚而是单独拿出一个普通的通用 GPIO 引脚软件控制高低电平来选中 / 释放从设备。优点一个 SPI 总线挂载多个从机时只需多分配几个普通 GPIO 做各自 CS大部分 MCU 硬件 SPI 的内置 NSS 引脚功能受限软件 GPIO 控制 CS 逻辑更可控适配绝大多数 SPI 传感器。缺点需要额外占用 一个普通 GPIO 引脚SPI 硬件自带 CS 引脚接法MCU 硬件 SPI 模块自带专用 CS 引脚直接连接到从设备 CS 脚由 SPI 硬件外设自动控制片选电平无需软件手动操作 GPIO。优点节省普通 GPIO 资源硬件自动管理 CS 时序发送数据时自动拉低、传输结束自动拉高简化代码适合高速连续传输。缺点一个 SPI 外设通常只有 1 个硬件 CS 脚只能挂载单个从设备时钟极性CPOLClock Polarity,简称CPOL,就是时钟极性,当主从设备之间没有数据传输的时候SCK时钟线的电平状态即空闲状态。当CPOL1时则SCK线空闲状态下是高电平当CPOLO时则SCK线空闲状态下是低电平。时钟相位CPHAClock Phase,简称CPHA,就是时钟相位。CPHA实际指的就是数据的采样时刻CPHA0时,则表示数据的采样是从时钟的第一个边沿CPHA1时则表示数据的采样是从时钟的第二个边沿。2.回环测试三、Modbus TCP 协议控制外设1.整体帧结构ADU 7 字节 MBAP 报文头 PDU功能码 数据一帧完整 Modbus TCP 由 7 字节 MBAP 头 至少 1 字节 PDU 功能码 组成a.MBAP 头部 7 字节固定结构字段长度作用说明事务处理标识符2 字节报文 ID客户端自增用于请求 - 应答配对服务器原样返回不参与运算协议标识符2 字节固定00 00代表 Modbus 协议长度2 字节后面所有字节总长度单元标识 PDU即 N2用于分包解析单元标识符1 字节等效 RTU 的从站地址以太网靠 IP 区分设备此字段可忽略常用默认值 01b.PDU 协议数据单元和 RTU 核心一致由1 字节功能码 N 字节数据组成读写线圈、寄存器的指令逻辑完全复用 Modbus RTU。对比 RTURTU 帧 从站地址 PDU CRC16 校验Modbus TCP无 CRC 校验。示例字节偏移内容名称详细说明0~100 01事务处理标识符 (Transaction ID)相当于请求的 “流水号”。客户端发的包 ID 是 0x0001服务器将来回复时必须带上同样的 0x0001这样单片机才能把 “回复” 和 “刚才的请求” 对上号。2~300 00协议标识符 (Protocol ID)固定为 0x0000代表这是 Modbus TCP 协议。如果收到非 0000 的值说明数据包不合法。4~500 06长度域 (Length)告诉服务器后面还有 6 个字节的数据需要读。后面 6 个字节就是 [01 03 00 00 00 01]。这一点极其关键单片机会根据这个数字去计算还要收多少包才算完整。601单元标识符 (Unit ID)相当于 Modbus RTU 里面的 “从机地址”。这里写 0x01代表告诉第 1 号设备“这包指令是发给你的”。703功能码 (Function Code)0x03 代表 “读保持寄存器”。告诉从机我要读取数据。8~900 00起始地址 (Starting Address)告诉从机“从你的第 0x0000 号寄存器开始读。”10~1100 01寄存器数量 (Quantity of Registers)告诉从机“我一共要读 1 个寄存器1 个寄存器占 2 个字节。”2.实验现象

相关新闻

C++23 <stacktrace>库实战:跨平台调试与异常处理新利器

C++23 <stacktrace>库实战:跨平台调试与异常处理新利器

1. 项目概述:为什么我们需要一个标准化的栈踪迹库?调试,大概是每个C开发者又爱又恨的环节。爱的是,当程序在你面前崩溃,而你通过蛛丝马迹最终定位到那个深藏不露的bug时,那种成就感无与伦比;恨的…

2026/7/23 8:02:34 阅读更多 →
Spring框架@RequestAttribute注解详解与应用实践

Spring框架@RequestAttribute注解详解与应用实践

1. RequestAttribute 注解深度解析在Spring框架中,RequestAttribute注解是一个相对小众但非常实用的注解。它主要用于从请求作用域(request scope)中获取预先存在的属性值。与大家更熟悉的RequestParam不同,RequestAttribute不是用来获取请求参数的&…

2026/7/23 9:06:04 阅读更多 →
MATLAB 2025a学习版安装与核心功能解析

MATLAB 2025a学习版安装与核心功能解析

1. MATLAB 2025a学习版安装体验与核心变化解析作为一名长期使用MATLAB进行科学计算的工程师,最近我成功安装了MATLAB 2025a学习版。这个版本带来了令人惊喜的界面革新和功能升级,完全不同于以往任何版本的使用体验。本文将详细分享我的安装过程、新版本的…

2026/7/23 8:20:30 阅读更多 →

最新新闻

向量引擎接入实战:从报错排查到性能优化

向量引擎接入实战:从报错排查到性能优化

1. 问题现象与背景分析 最近在接入某款主流向量引擎时遇到了一个典型问题——只要一启动查询就会立即报错。控制台输出的错误信息含糊不清,只显示"Internal Server Error (500)",这让我不得不花费三天时间进行深度排查。相信不少同行在首次对接…

2026/7/23 16:22:50 阅读更多 →
Driver.js 火了八年终于更新:Vue、React都能直接用的产品引导神器

Driver.js 火了八年终于更新:Vue、React都能直接用的产品引导神器

Driver.js 火了八年终于更新:Vue、React都能直接用的产品引导神器 Driver.js没有炫技、没有复杂配置,它只是把"产品引导"这一件事做到足够成熟。 过去几年,前端圈一直有一个很尴尬的问题:产品越来越复杂,功…

2026/7/23 16:22:50 阅读更多 →
TypeScript 7.0:Go编译器带来10倍性能提升,前端开发体验全面升级

TypeScript 7.0:Go编译器带来10倍性能提升,前端开发体验全面升级

TypeScript 7.0:Go编译器带来10倍性能提升,前端开发体验全面升级 TypeScript 7.0是TypeScript历史上最大的一次架构变革——编译器从TypeScript/JavaScript自举,改为Go语言原生移植。这不是简单的"用Go重写",而是一次对…

2026/7/23 16:22:50 阅读更多 →
2026年GEO服务商效果实测:优化成效与合作价值多维度对比排行

2026年GEO服务商效果实测:优化成效与合作价值多维度对比排行

引言随着GEO布局的企业数量持续增长,优化效果与实际合作价值已成为企业选择服务商的核心决策依据。不同于传统营销渠道可通过点击量、曝光量等直观指标快速评估效果,GEO的效果传递路径更隐蔽、评估维度更复杂,部分企业在选型过程中因缺乏客观…

2026/7/23 16:22:50 阅读更多 →
ARM Cortex-M外设存在寄存器:实现固件硬件自适应与可移植性

ARM Cortex-M外设存在寄存器:实现固件硬件自适应与可移植性

1. 从寄存器手册到驱动代码:外设存在性检测的实战价值在嵌入式开发领域,尤其是基于ARM Cortex-M内核的微控制器项目,我们常常会面对一个看似基础却至关重要的任务:如何让同一份固件代码,在不同的芯片型号、甚至同一型号…

2026/7/23 16:22:50 阅读更多 →
Python版本演进:从2.7到3.14的关键变革与优化

Python版本演进:从2.7到3.14的关键变革与优化

1. Python版本演进的历史背景Python 2.7发布于2010年7月,是Python 2.x系列的最后一个主要版本。当时Python社区正处于一个关键的转折点——Python 3.0已于2008年发布,但大量现有代码库和第三方库仍然依赖Python 2.x。这种分裂状态持续了近十年&#xff0…

2026/7/23 16:21:49 阅读更多 →

日新闻

从单点好评到指数级传播:AI副业主理人必须掌握的4层口碑渗透模型(含ROI测算表)

从单点好评到指数级传播:AI副业主理人必须掌握的4层口碑渗透模型(含ROI测算表)

更多请点击: https://intelliparadigm.com 第一章:从单点好评到指数级传播:AI副业主理人必须掌握的4层口碑渗透模型(含ROI测算表) 当AI副业主理人不再仅满足于单次服务交付,而是主动构建可复用、可裂变、可…

2026/7/23 0:00:25 阅读更多 →
AI写作开头钩子设计:为什么你的AI文案完读率不足18%?——基于2,346篇A/B测试报告的归因分析

AI写作开头钩子设计:为什么你的AI文案完读率不足18%?——基于2,346篇A/B测试报告的归因分析

更多请点击: https://codechina.net 第一章:AI写作开头钩子设计:为什么你的AI文案完读率不足18%?——基于2,346篇A/B测试报告的归因分析 在对2,346篇跨行业AI生成文案的A/B测试数据进行聚类分析后,我们发现&#xff1…

2026/7/23 0:01:26 阅读更多 →
Chitchatter完整指南:免费开源的终极点对点安全聊天工具

Chitchatter完整指南:免费开源的终极点对点安全聊天工具

Chitchatter完整指南:免费开源的终极点对点安全聊天工具 【免费下载链接】chitchatter Secure peer-to-peer chat that is serverless, decentralized, and ephemeral 项目地址: https://gitcode.com/gh_mirrors/ch/chitchatter Chitchatter是一款革命性的安…

2026/7/23 0:01:26 阅读更多 →

周新闻

Go语言静态资源打包方案对比与实践指南

Go语言静态资源打包方案对比与实践指南

1. 项目背景与核心需求在Go语言开发中,我们经常需要处理静态资源文件的打包问题。无论是Web应用的模板文件、前端资源,还是配置文件、证书等,都需要随程序一起分发。传统做法是将这些文件与编译后的二进制文件放在同一目录下,但这…

2026/7/22 8:58:19 阅读更多 →
Go语言实现高性能LDAP认证服务的架构与实践

Go语言实现高性能LDAP认证服务的架构与实践

1. 项目背景与核心价值LDAP(轻量级目录访问协议)作为企业级身份认证的黄金标准,已经服务了超过80%的财富500强公司。我在金融科技领域实施统一认证体系时,发现传统Java方案存在启动慢、内存占用高等痛点。而Go语言凭借其协程并发模…

2026/7/22 19:43:43 阅读更多 →
【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

更多请点击: https://intelliparadigm.com 第一章:AI面试官实战指南的核心价值与适用场景 AI面试官并非替代人类HR的“黑箱工具”,而是以可解释、可审计、可迭代的方式,赋能招聘全链路的关键基础设施。其核心价值在于将主观经验沉…

2026/7/22 12:54:44 阅读更多 →

月新闻