嵌入式软件工程师面试题——嵌入式专题 (五十二)

news2024/9/23 3:30:05

说明:

  • 面试群,群号: 228447240
  • 面试题来源于网络书籍,公司题目以及博主原创或修改(题目大部分来源于各种公司);
  • 文中很多题目,或许大家直接编译器写完,1分钟就出结果了。但在这里博主希望每一个题目,大家都要经过认真思考,答案不重要,重要的是通过题目理解所考知识点,好应对题目更多的变化;
  • 博主与大家一起学习,一起刷题,共同进步;
  • 写文不易,麻烦给个三连!!!

1.IO口工作方式(学过STM32的人应该很熟悉)

答案:

上拉输入、下拉输入、推挽输出、开漏输出。

2.请说明总线接口USRTI2CUSB的异同点

答案:

(串 / 并、速度、全 / 半双工、总线拓扑等)
总线接口串/并同步/异步速率工作方式用线总线拓扑结构通信距离
UART异步

波特率设置

全双工

2线

Rx、Tx

RS485支持总线式、星形、树形

最远1200

I2C同步半双工

2线

SDA、SCL

总线型
SPI同步全双工

3线或4线

SCLK、SIMO、

SOMI、SS(片选)

环形
USB同步半双工

4线

Vbus(5V)、GND、D+、D-(3.3V)

星形

3.IIC协议时序图

答案:

必须会画出来
IIC 协议有两根线,一根 SCL 时钟线,一根 SDA 数据线,如图可以看到开始信号和结束信号的电平状态。 开始后,因为IIC 总线可以挂在很多设备(不超过 8 个),所以先发送一个设备地址,选中这个设备,设备地址最后一位代表了是写还是读。选中设备后,再发送寄存器地址,代表选中某个寄存器,再开始传输数据。
八位设备地址 =7 位从机地址 + / 写地址,
再给地址添加一个方向位位用来表示接下来数据传输的方向,
0 表示主设备向从设备 (write) 写数据, 1表示主设备向从设备(read) 读数据。

开始信号: SCL 为高电平时, SDA 由高电平向低电平跳变,开始传送数据。
结束信号: SCL 为高电平时, SDA 由低电平向高电平跳变,结束传送数据。
应答信号:接收数据的 IC 在接收到 8bit 数据后,向发送数据的 IC 发出特定的低电平脉冲,表示已收到数据。CPU 向受控单元发出一个信号后,等待受控单元发出一个应答信号, CPU 接收到应答信号后,根据实际情况作出是否继续传递信号的判断。若未收到应答信号,由判断为受控单元出现故障。
IIC 信号在数据传输过程中,当 SCL=1 高电平时,数据线 SDA 必须保持稳定状态,不允许有电平跳变,只有在时钟线上的信号为低电平期间,数据线上的高电平或低电平状态才允许变化。SCL=1 时 数据线 SDA的任何电平变换会看做是总线的起始信号或者停止信号。

4.单片机的SP指针始终指向

答案:
栈顶。

5.IIC总线在传送数据过程中共有三种类型信号

答案:
它们分别是:开始信号、结束信号和应答信号。

6.FIQ中断向量入口地址,IRQ呢

答案:
FIQ IRQ 是两种不同类型的中断, ARM 为了支持这两种不同的中断,提供了对应的叫做 FIQ IRQ 处理器模式(ARM 7 种处理模式)。
FIQ的中断向量地址在0x0000001C,而IRQ的在0x00000018

7.SPI四种模式,简述其中一种模式,画出时序图

答案:

在芯片资料上极性和相位一般表示为 CPOL Clock POLarity )和 CPHA(Clock PHAse), 极性和相位组合成4 种工作模式。
CPOLCPHA
模式100
模式201
模式310
模式411

spi 四种模式 SPI 的相位 (CPHA) 和极性 (CPOL) 分别可以为 0 1 ,对应的 4 种组合构成了 SPI 4 种模式(mode)
时钟极性 CPOL: SPI 空闲时,时钟信号 SCLK 的电平( 1: 空闲时高电平 ; 0: 空闲时低电平) 时钟相位CPHA: 即 SPI SCLK 第几个边沿开始采样( 0: 第一个边沿开始 ; 1: 第二个边沿开始)
sd 卡的 spi 常用的是 mode 0 mode 3,这两种模式的相同的地方是都在时钟上升沿采样传输数据,区别这两种方式的简单方法就是看空闲时,时钟的电平状态,低电平为 mode 0 ,高电平为 mode 3

8.讲一讲冯诺依曼和哈佛体系的区别

答案:
哈佛结构是一种将程序指令存储和数据存储分开的存储器结构。目前使用哈佛结构的中央处理器和微控制器有很多,ARM9 ARM10 ARM11 51 单片机属于哈佛结构。
· 诺伊曼结构也称普林斯顿结构,是一种将程序指令存储器和数据存储器合并在一起的存储器结构。

9.USART为什么一次只能发送一个字节? 先发高位还是低位

答案:

考虑数据准确性,时间误差的累计。

比如你发送的数据为1111 0000 那么接收方如何知道你连续发送了几个1几个0,这个时候就需要波特率,通过计算时间可以知道你发送了几个连续1或0,因为波特率规定了每发一个Bit的时间,但是发送方和接收方可能存在时间误差,会导致累计时间误差,导致数据不正确,所以这个时候就需要规定每次只能发送一个字节数据,就可以避免累计时间误差,这也是异步导致的。

先发低位。

10.串口通信存在的问题

答案:

1)串口只是规定了协议,即帧格式,用高电平表示1,低电平表示0,但是在不同的处理器中这个定义是不一样的,电气特性不一样,所以这两个处理器是不能直接连接的。

2)抗干扰能力差,使用的是 TTL 信号表示0和1。

3)通信距离短,只能用于一个电路板上的两个不同芯片之间的通信。

由于串口通信存在的问题就出现了RS232、RS485协议,但是软件编程还是串口那样编程,因为改的只是硬件上的电性。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1430966.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【新书推荐】5.2 位运算符

本节必须掌握的知识点: 位运算 示例十七 代码分析 汇编解析 5.2.1 位运算 位运算符如表5-2所示: 运算符 作用 示例 & 按位与 两个操作数同时为1,结果为1; | 按位或 两个操作数只要有一个为1,结果就为1&a…

Apollo配置中心之Server端

一、通知机制 二、架构思考 1、配置变更如何通知客户端? (1)如何建立长轮询? 2、客户端如何拉取数据? (1)如何拉取数据? 3、如何发现变更数据? (1&…

全国医院及文体设施相关情况数据,shp+excel格式,多字段可查询,所见即所得

基本信息. 数据名称: 全国医院及文体设施相关情况数据 数据格式: shpexcel 数据几何类型: 面 数据坐标系: WGS84 数据来源:网络公开数据 数据字段: 序号字段名称字段说明1province省级名称2city城市名称3city_dm城市代码4tsgcss2020公共图书馆图…

vulhub中 Apache Airflow Celery 消息中间件命令执行漏洞复现(CVE-2020-11981)

Apache Airflow是一款开源的,分布式任务调度框架。在其1.10.10版本及以前,如果攻击者控制了Celery的消息中间件(如Redis/RabbitMQ),将可以通过控制消息,在Worker进程中执行任意命令。 1.利用这个漏洞需要控…

[基础IO]文件描述符{重定向/perror/磁盘结构/inode/软硬链接}

文章目录 1. 再识重定向2.浅谈perror()3.初始文件系统4.软硬链接 1. 再识重定向 图解./sf > file.txt 2>&1 1中内容拷贝给2 使得2指向file 再学一个 把file的内容传给cat cat拿到后再给file2 2.浅谈perror() open()接口调用失败返回-1,并且错误码errno被适当的设置,…

Hive 主要内容一览

Hive架构 用户接口:Client CLI(command-line interface)、JDBC/ODBC(jdbc访问hive) 元数据:Metastore 元数据包括:表名、表所属的数据库(默认是default)、表的拥有者、列/分区字段、表的类型&am…

CTF(5)

一、[SWPUCTF 2021 新生赛]ez_caesar 1、题目 import base64 def caesar(plaintext):str_list list(plaintext)i 0while i < len(plaintext):if not str_list[i].isalpha():str_list[i] str_list[i]else:a "A" if str_list[i].isupper() else "a"…

vulhub中Adminer远程文件读取漏洞复现(CVE-2021-43008)

Adminer是一个PHP编写的开源数据库管理工具&#xff0c;支持MySQL、MariaDB、PostgreSQL、SQLite、MS SQL、Oracle、Elasticsearch、MongoDB等数据库。 在其版本1.12.0到4.6.2之间存在一处因为MySQL LOAD DATA LOCAL导致的文件读取漏洞。 参考链接&#xff1a; https://gith…

端到端实现高精地图重建(TopoNet解读和横评)

论文出处 [2304.05277] Graph-based Topology Reasoning for Driving Scenes (arxiv.org)https://arxiv.org/abs/2304.05277 TopoNet TopoNet的目标是从车辆上安装的多视角摄像头获取图像&#xff0c;感知实体并推理出驾驶场景的拓扑关系&#xff0c;实现端到端预测&#xf…

2017年苏州大学837复试机试C/C++

2017年苏州大学复试机试 要求 要求用C/C编程&#xff1b;对程序中必要的地方进行注释。上机规则 请在电脑桌面上新建一个文件夹文件夹名为考试姓名&#xff08;中文&#xff09;&#xff1b;考试完毕后&#xff0c;将所编写的文件放在上述文件中。 第一题&#xff08;20分&…

Node.js-1

Node.js 简介 定义&#xff1a;Node.js 是一个跨平台 JavaScript 运行环境&#xff0c;使开发者可以搭建服务器端的 JavaScript 应用程序 为什么 Node.js 能执行 JS 代码&#xff1a; Chrome 浏览器能执行 JS 代码&#xff0c;依靠的是内核中的 V8引擎&#xff08;即&#x…

react 使用react-seamless-scroll实现无缝滚动

文章目录 1. 实现无缝滚动效果2. react-seamless-scroll 无缝滚动案例介绍3. react 项目集成3.1 项目引入 cssSeamlessScroll 滚动组件3.2 完整代码3.2.1 newBet.tsx 代码3.2.2 index.module.scss 1. 实现无缝滚动效果 实现单步向下滚动点击更多展开&#xff0c;收起&#xff0…

[Angular 基础] - Angular 渲染过程 组件的创建

[Angular 基础] - Angular 渲染过程 & 组件的创建 之前的笔记为了推进度写的太笼统了&#xff08;只有功能没有其他&#xff09;&#xff0c;当时学的时候知道是什么东西&#xff0c;但是学完后重新复习发现有些内容就记不清了&#xff0c;所以重新用自己的语言总结一下 …

[晓理紫]每日论文分享(有中文摘要,源码或项目地址)--强化学习、模仿学习、机器人

专属领域论文订阅 关注{晓理紫}&#xff0c;每日更新论文&#xff0c;如感兴趣&#xff0c;请转发给有需要的同学&#xff0c;谢谢支持 如果你感觉对你有所帮助&#xff0c;请关注我&#xff0c;每日准时为你推送最新论文。 为了答谢各位网友的支持&#xff0c;从今日起免费为3…

基于YOLOv8算法的照片角度分类项目实践

目录 一、任务概述二、YOLOv8算法简介2.1 算法改进2.2 算法特点2.3 网络结构2.4 性能比较 三、工程实践3.1 安装算法框架库ultralytics3.2 库存照片预处理3.2.1 提取所有图片3.2.2 去除冗余的相同照片3.2.3 去除无车辆照片3.2.4 随机提取指定数量的图片 3.3 照片朝向分类3.3.1 …

项目02《游戏-06-开发》Unity3D

基于 项目02《游戏-05-开发》Unity3D &#xff0c; 接下来做 背包系统的 存储框架 &#xff0c; 首先了解静态数据 与 动态数据&#xff0c;静态代表不变的数据&#xff0c;比如下图武器Icon&#xff0c; 其中&#xff0c;武器的名称&#xff0c;描述&#xff…

宠物空气净化器哪个牌子好?除猫毛好的猫用空气净化器牌子推荐

大家都知道&#xff0c;宠物掉毛的情况有多么严重。特别是在换毛的季节&#xff0c;简直就是毛发遍地飞。这给家里有小孩和老人的人带来了很多困扰&#xff0c;他们可能会流鼻涕、过敏等等。而且&#xff0c;宠物有时候也会随地大小便&#xff0c;那个味道真的很难闻。家里的人…

【揭秘】JMeter JDBC脚本实战,让你的性能测试更高效!

Jmeter使用jdbc的场景&#xff1a; 1、接口功能测试时&#xff0c;需要查询验证码 2、通过数据库查询已经注册的手机号码 3、性能测试时&#xff0c;直接对某个SQL做性能测试&#xff0c;快速的发现性能问题 添加一个jdbc的配置元件 配置jdbc连接信息 配置说明&#xff1a; 1…

如何看待敏捷

局部清晰&#xff0c;循序渐进&#xff0c;整体清晰增量型 考试要么预测&#xff08;传统&#xff0c;瀑布&#xff09;&#xff0c;要么敏捷&#xff0c;要么就用混合方法 项目生命周期两种&#xff1a;预测型、敏捷型 开发生命周期四种&#xff1a;预测型、迭代型、增量型、…

JVM工作原理与实战(三十四):解决GC问题的方法

专栏导航 JVM工作原理与实战 RabbitMQ入门指南 从零开始了解大数据 目录 专栏导航 前言 一、常见的垃圾回收&#xff08;GC&#xff09;模式 二、解决GC问题的方法 1.优化基础JVM参数 2.更换垃圾回收器 3.优化垃圾回收器的参数 总结 前言 JVM作为Java程序的运行环境&a…