嵌入式八股文学习-自学长期更新-2026
总感觉没有系统学清或者说学完之后还是迷迷糊糊想必还是得知道一些理论套话。慢慢来吧希望系统学完能手搓些什么出来玩玩听说得学习别人开源代码才能快速提升好嘞加油。参考他人学习链接嵌入式面试八股文总结长期更新-CSDN博客通信协议I2C通信Inter-Integrated Circuit同步串行通信因为有时钟线、用于板内短距离、芯片级互连;通常用于主控芯片与各种外设芯片如传感器、EEPROM等的通信两根线、半双工、采用软件寻址选择从机、传输速度慢I2C通信为什么要加上拉电阻1、实现线与逻辑I2C总线上多个设备共享同一条总线上拉电阻可以将总线拉至高电平任何设备都可以通过总线拉低来发送信号。2、开漏输出配置I2C总线上的两个引脚都是配置为开漏输出在开漏输出模式下引脚无法输出高电平只能靠上拉电阻来提供将总线拉回高电平的能力。图片源于网络应该是CMOS开关3、防止总线冲突当多个设备同时访问总线上拉电阻配合开漏输出可以防止短路。4、定义总线空闲状态上拉电阻确保总线上无设备通信时保持高电平即空闲状态。经典的上拉电阻阻值为4.7kI2C为什么要使用开漏输出1、可以实现线与逻辑2、实现电平转换不同电压域的设备可以在同一总线上通信只需使用与最高电压匹配的上拉电阻。前提是低压侧设备的 I/O 口必须具备高压容限Tolerant。如果低压侧设备不支持高压必须使用‘电平转换电路’Level Shifter通常由两个 MOSFET 组成来隔离两个电压域。3、时钟同步开漏结构可以使从设备通过拉低SCL线延长时钟周期保证较慢的从设备与主设备同步4、仲裁机制多主机下可以实现无损仲裁-低电平优先。IIC的地址位数是多少7位或者11位大部分为7位。一般发送从机地址7位1位读写位理论上可用的是127个2^7-10x00地址保留。实际可用的是126个0x00和0x7F地址保留。可拓展10位地址格式。理论上可用也是10232^10-10x00地址保留IIC有几根线两根线SCL时钟线与SDA数据线。IIC的通信速率有哪些包含标准模式、快速模式、高速模式100k、400k、1MbpsIIC时序我是觉得分为开始、发送一个字节、接收应答、接收一个字节、发送应答、结束信号但是有些说是开始、应答、结束信号开始信号是SCL为高电平时SDA从1到0停止信号是SCL为高电平时SDA从0到1写/读取信号是主机或者从机SCL低电平时发送设备将数据放到SDA上SCL高电平时接收设备把SDA上的数据读走。SCL为高电平时SDA必须为稳定电平数据时按MSB高位优先传输应答机制每每传输8位数据也就是1个字节接收设备需要给出ACK应答位0为应答1为非应答。在 SCL 为高电平期间发送方读取 SDA 的状态。如果读到 0 就是 ACK读到 1 就是 NACK。如何计算IIC总线上拉电阻的阻值R上拉电阻阻值。Tr要求的上升时间。Cb总线电容。下次看到再进行补充公式实际选择建议低速场景4.7KΩ - 10KΩ。标准模式4.7KΩ。快速模式2.2KΩ - 4.7KΩ。高速模式2.2kΩ - 4.7kΩ。硬件IIC和软件IIC的区别软件I2C的话首先是引脚随便选两个即可然后程序的话先配置引脚为上拉开漏模式.编写基本时序。比较方便换引脚。可以从实现方式速度稳定性灵活性方面讨论。实现方式上的区别。硬件IIC通过MCU内部的专用硬件模块实现时序软件只负责发出命令。软件IIC通过控制GPIO来模拟IIC的SCL和SDA信号来产生IIC的时序。速度上的区别。硬件IIC速度比较快。软件IIC速度比较慢而且会占用CPU稳定性上的区别。硬件IIC稳定性较高。软件IIC稳定性相对较低。灵活性上软件IIC的IO口可以随意设置更加灵活而硬件IIC的IO口是固定的。IIC如何实现多主机通信1、总线仲裁采用低电平优先原则。由于总线采用线与逻辑谁先发送低电平谁先获得总线控制权2、时钟同步因为是线与逻辑只有当所有设备同时释放SCL时总线才会被拉高。因此所有设备会以最慢的设备的时钟速率运行以保证时钟同步。3、冲突检测主机发送每一位数据时都会检查SDA线实际电平如果检测到的电平与期望发送的不同则失去仲裁权。IIC的时钟同步和时钟拉伸是什么时钟同步I2C总线上的SCL线是所有设备逻辑与的结果。当任一设备将SCL拉低总线SCL就为低电平。只有当所有设备都释放SCL高阻态SCL才会变为高电平这确保了最慢的设备也能跟上通信节奏;时钟拉伸从设备可以通过持续拉低SCL来延长时钟周期。这样从设备可以有更多时间处理数据。主设备必须等待SCL实际变为高电平后才能继续。这是I2C协议中从设备控制通信速度的机制。I2C通信中常见的问题及解决方案暂时没太碰到过总线死锁症状SDA或SCL被某个设备一直拉低。解决方案 软件复位主机产生9个时钟脉冲尝试完成被中断的传输。硬件复位复位所有I2C设备。电源循环关闭再打开电源地址冲突症状多个设备使用相同地址解决方案 使用带地址选择引脚的器件使用I2C地址转换器使用多总线设计时序问题症状高速通信时数据错误。解决方案 减小上拉电阻值注意功耗增加减少总线电容缩短线长、减少设备数量降低通信速率噪声干扰症状通信不稳定偶发错误解决方案 使用屏蔽线缆增加滤波电容优化PCB布局避免I2C线与高速信号线并行---------------------------------------------------------------------------------------------------------------------------------SPI通信基本原理与特点高速与IICUSART相比、全双工、同步串行、四根线MOSI、MISO、SCLK、CS传输效率高一主多从可以连接多个从机设备传输效率高-可达几十MHz寻址方式当主设备要与某个从设备进行通信时主设备需要先向对应从设备的片选线上发送使能信号0/1根据从机来定表示选中该从机。SPI的主机需要至少四根线什么时候需要用到多余的线多个从机的时候这样主机需要多个片选线来连接多个设备。SPI与IIC一样都是先发高位后发低位与USART相反SPI不带应答所以快。但是有可能接收器没有接收到。没有起始信号也没有终止信号上来就发送数据。MSB-最高位、LSB-最低位第一个沿发第二个沿收极性和相位对于特定的从机设备一般在出厂时会将其设计为某种特定的工作模式所以一般在使用该设备的时候需要保证主设备的工作模式与从设备保持一致即需要对主设备的CPOL和CPHA进行配置。SPI有几种工作模式有什么区别4种跟极性跟相位有关极性CPOL相位CPHA跟SCLK有关与什么时候接收器读取数据有关CPOL0,表示SCLK空闲时为低电平CPOL1,表示SCLK空闲时为高电平CPHA0,在第一个边沿读取数据CPHA1,在第二个边沿读取数据SPI有几根线可以去除几根线如果不需要双向通信可以去除MOSI/MISO其中一根线。如果是一对一通信CS片选线也可以去除。SPI和IIC的寻址区别SPI通过CS信号选择从机设备IIC采用广播式发送给总线上的所有从机通过发送的第一个字节7位地址/前两个字节11位地址选择从机设备SPI与IIC、UART相比有些什么优势优点速度快可以达到几十MHz全双工通信效率高缺点需要的信号线多四根多个从设备需要多条CS线占用IO引脚多无应答机制无法确认数据是否正确接收SPI的菊花链和独立模式菊花链所有从机共用一根CS线数据经过一个设备后再传递给下一个设备独立模式每个从机均单独使用一根CS线DualSPI和QualSPIMOSIMISO设置为双向数据信号。DualSPI支持两根信号线同时传输等效时钟工作频率翻倍。QualSPI支持四根信号线同时传输等效时钟工作频率翻四倍。SPI的传输流程主机把对应的从设备片选线CS拉低主机发出时钟信号主机设置工作模式-极性跟相位主机发起通讯写入一字节数据常见的7位地址1读写位-取决于从机设备然后从机就会在特定的时钟边沿通过MISO发送数据给主机传输数据过程中MSB高位优先发送到移位寄存器传输完成后主设备拉高片选结束通信。---------------------------------------------------------------------------------------------------------------------------------UART通信USB通信增CAN通信Modbus RTUModbus DPUModbus TCP

相关新闻

Android15车载音频进阶之高阶定位内存泄漏方案(一百六十一)

Android15车载音频进阶之高阶定位内存泄漏方案(一百六十一)

简介: CSDN博客专家、《Android系统多媒体进阶实战》作者 博主新书推荐:《Android系统多媒体进阶实战》🚀 Android Audio工程师专栏地址: Audio工程师进阶系列【原创干货持续更新中……】🚀 Android多媒体专栏地址: 多媒体系统工程师系列【原创干货持续更新中……】�…

2026/7/5 18:30:35 阅读更多 →
Springboot个性化图书推荐系统31y94(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。

Springboot个性化图书推荐系统31y94(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。

系统程序文件列表项目功能:用户,图书类型,图书信息,热门图书,最新图书开题报告内容基于Spring Boot的个性化图书推荐系统开题报告一、选题背景与意义随着互联网技术的飞速发展和数字阅读的普及,图书资源呈现爆炸式增长。面对海量图书,用户往往…

2026/7/6 14:29:16 阅读更多 →
Springboot计算机毕业设计网上图书商城q3ulr(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。

Springboot计算机毕业设计网上图书商城q3ulr(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。

系统程序文件列表 项目功能:用户,卖家,图书类型,图书信息,图书借阅,图书归还 开题报告内容 基于Spring Boot的网上图书商城开题报告 一、课题背景与意义 1.1 课题背景 随着互联网技术的飞速发展,电子商务已成为现代商业的核心模式。传统图书销售模式…

2026/5/17 11:27:45 阅读更多 →

最新新闻

告别抖动困扰:3步实现专业级陀螺仪视频稳定效果

告别抖动困扰:3步实现专业级陀螺仪视频稳定效果

告别抖动困扰:3步实现专业级陀螺仪视频稳定效果 【免费下载链接】gyroflow Video stabilization using gyroscope data 项目地址: https://gitcode.com/GitHub_Trending/gy/gyroflow 你是否曾为运动相机拍摄的视频抖动而烦恼?GoPro、索尼、Insta3…

2026/7/6 21:18:10 阅读更多 →
500个完整AI项目代码:快速上手机器学习与深度学习实战指南

500个完整AI项目代码:快速上手机器学习与深度学习实战指南

500个完整AI项目代码:快速上手机器学习与深度学习实战指南 【免费下载链接】500-AI-Machine-learning-Deep-learning-Computer-vision-NLP-Projects-with-code 500 AI Machine learning Deep learning Computer vision NLP Projects with code 项目地址: https://…

2026/7/6 21:18:10 阅读更多 →
花了3年踩遍应用托管平台的坑,这6个选型标准帮你少走90%弯路

花了3年踩遍应用托管平台的坑,这6个选型标准帮你少走90%弯路

花了3年踩遍应用托管平台的坑,这6个选型标准帮你少走90%弯路 直接说结论。 选应用托管平台,90%的人只看两个东西:免费不免费、部署简不简单。 然后呢?上线一个月,链接挂了。换个平台,发现迁移不了。再换&am…

2026/7/6 21:14:09 阅读更多 →
iOS-Network-Stack-Dive的TCP状态机实现:完整掌握三次握手与快速重传

iOS-Network-Stack-Dive的TCP状态机实现:完整掌握三次握手与快速重传

iOS-Network-Stack-Dive的TCP状态机实现:完整掌握三次握手与快速重传 【免费下载链接】iOS-Network-Stack-Dive 生产级iOS网络通信、架构实战 基于 CocoaAsyncSocket 打造的高性能底层通信框架,日均处理万级别消息,真实服务于企业客户&#x…

2026/7/6 21:14:09 阅读更多 →
从Evernote到Markdown:如何优雅迁移你的数字笔记宝库?

从Evernote到Markdown:如何优雅迁移你的数字笔记宝库?

从Evernote到Markdown:如何优雅迁移你的数字笔记宝库? 【免费下载链接】evernote2md Convert Evernote .enex files to Markdown 项目地址: https://gitcode.com/gh_mirrors/ev/evernote2md 你是否曾经陷入这样的困境:多年积累的Evern…

2026/7/6 21:14:08 阅读更多 →
构建弹性FastDFS文件存储系统:从超时容错到全链路治理的架构演进

构建弹性FastDFS文件存储系统:从超时容错到全链路治理的架构演进

构建弹性FastDFS文件存储系统:从超时容错到全链路治理的架构演进 【免费下载链接】fastdfs FastDFS is a high performance distributed file system (DFS). Its major functions include: file storing, file syncing and file accessing, and design for high cap…

2026/7/6 21:10:05 阅读更多 →

日新闻

H2 与 MySQL 单元测试兼容性:5 个关键 SQL 语句差异与规避方案

H2 与 MySQL 单元测试兼容性:5 个关键 SQL 语句差异与规避方案

H2与MySQL单元测试兼容性:5个关键SQL语句差异与规避方案1. 单元测试中的数据库兼容性挑战在Java开发领域,单元测试是保证代码质量的重要环节。当应用涉及数据库操作时,测试环境的搭建往往成为开发者的痛点。H2数据库因其轻量级、内存模式和快…

2026/7/6 0:01:17 阅读更多 →
Windows任务栏终极清理指南:用RBTray一键隐藏窗口到系统托盘

Windows任务栏终极清理指南:用RBTray一键隐藏窗口到系统托盘

Windows任务栏终极清理指南:用RBTray一键隐藏窗口到系统托盘 【免费下载链接】rbtray A fork of RBTray from http://sourceforge.net/p/rbtray/code/. 项目地址: https://gitcode.com/gh_mirrors/rb/rbtray 你是否厌倦了Windows任务栏上密密麻麻的图标&…

2026/7/6 0:01:17 阅读更多 →
Visual C++ 运行时库一键安装终极指南:告别DLL缺失烦恼

Visual C++ 运行时库一键安装终极指南:告别DLL缺失烦恼

Visual C 运行时库一键安装终极指南:告别DLL缺失烦恼 【免费下载链接】vcredist AIO Repack for latest Microsoft Visual C Redistributable Runtimes 项目地址: https://gitcode.com/gh_mirrors/vc/vcredist 你是否曾经遇到过这样的情况:下载了…

2026/7/6 0:05:19 阅读更多 →

周新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/6 8:11:50 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/6 8:11:52 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/6 6:52:56 阅读更多 →

月新闻