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

news2024/11/16 13:44:48

说明:

  • 面试群,群号: 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/1430399.html

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

相关文章

EtherCAT转ModbusTCP网关

一、功能概述 1.1设备简介 本产品是EtherCAT和Modbus TCP网关,使用数据映射方式工作。 本产品在EtherCAT侧作为EtherCAT从站,接TwinCAT、CodeSYS、PLC等;在ModbusTCP侧做为ModbusTCP主站(Client)或从站(…

【蓝桥杯冲冲冲】[NOIP2003 普及组] 数字游戏

蓝桥杯备赛 | 洛谷做题打卡day25 文章目录 蓝桥杯备赛 | 洛谷做题打卡day25[NOIP2003 普及组] 数字游戏题目描述输入格式输出格式样例 #1样例输入 #1样例输出 #1 提示思路 题解代码我的一些话 [NOIP2003 普及组] 数字游戏 题目描述 丁丁最近沉迷于一个数字游戏之中。这个游戏看…

MySQL for update锁表还是锁行校验

select * from user where id 1 for update ; 1. for update作用 在MySQL中,使用for update子句可以对查询结果集进行行级锁定,以便在事务中对这些行进行更新或者防止其他事务对这些行进行修改。 当使用for update时,锁定行的方式取决于wh…

【初中生讲机器学习】4. 支持向量机算法怎么用?一个实例带你看懂!

创建时间:2024-02-02 最后编辑时间:2024-02-03 作者:Geeker_LStar 你好呀~这里是 Geeker_LStar 的人工智能学习专栏,很高兴遇见你~ 我是 Geeker_LStar,一名初三学生,热爱计算机和数学,我们一起加…

【八大排序】冒泡排序 | 快速排序 + 图文详解!!

📷 江池俊: 个人主页 🔥个人专栏: ✅数据结构冒险记 ✅C语言进阶之路 🌅 有航道的人,再渺小也不会迷途。 文章目录 交换排序一、冒泡排序1.1 算法步骤 动图演示1.2 冒泡排序的效率分析1.3 代码实现1.4 …

HSRP配置指南

实验大纲 第 1 部分:验证连通性 步骤 1:追踪从 PC-A 到 Web 服务器的路径 步骤 2:追踪从 PC-B 到 Web 服务器的路径 步骤 3:观察当 R3 不可用时,网络的行为 第 2 部分:配置 HSRP 主用和 备用路由器 步…

【Crypto | CTF】BUUCTF rsarsa1

天命:第二题RSA解密啦,这题比较正宗 先来看看RSA算法 这道题给出了 p,q,E,就是给了两个质数和公钥 有这三个东西,那就可以得出私钥了 最后把私钥和质数放进去解密即可得到解密后的明文 from gmpy2 impor…

公交最短距离-算法

题目 给定一个一维数组,其中每一个元素表示相邻公交站之间的距离,比如有四个公交站A,B,C,D,对应的距离数组为,1,2,3,4,如下图示 给定目标站X和Y,求他们之间最短的距离 解题 遍历一次整个数组,…

考研/计算机二级数据结构刷题之顺序表

目录 第一题 顺序表的初始化,销毁,头插,尾插,头删,尾删,指定位置插入,指定删除以及打印 第二题 移除元素 题目链接: OJ链接 题目详解:移除元素 第三题:删…

回溯法:回溯法通用模版汇总以及模版应用

从一个问题开始 给定两个整数 n 和 k,返回 1 ... n 中所有可能的 k 个数的组合。 示例: 输入: n 4, k 2 输出: [ [2,4], [3,4], [2,3], [1,2], [1,3], [1,4] ] 很容易想到 用两个for循环就可以解决。 如果n为100,k为50呢,那就50层for循…

问题:测风站应设置在平直的巷道中,其前后()范围内不得有障碍物和拐弯等局部阻力。 #微信#媒体

问题:测风站应设置在平直的巷道中,其前后()范围内不得有障碍物和拐弯等局部阻力。 参考答案如图所示

U盘里的东西刚存进去就没了怎么回事?怎么办

U盘里的东西刚存进去就没了怎么办?U盘是我们平时常用的存储设备之一,但有时候会出现一些问题。其中之一就是将东西存进去后,发现数据竟然消失了。这是一个令人困扰的问题,可能会导致我们的重要文件丢失。在本文中,我们…

RT-Thread线程管理(使用篇)

layout: post title: “RT-Thread线程管理” date: 2024-1-26 15:39:08 0800 tags: RT-Thread 线程管理(使用篇) 之后会做源码分析 线程是任务的载体,是RTT中最基本的调度单位。 线程执行时的运行环境称为上下文,具体来说就是各个变量和数据&#xff0c…

利用OpenCV实现物流与生产线自动化的革命性突破

背景介绍: 在当今高度自动化的时代,物流和生产线上的每一个环节都关乎企业的核心竞争力。传统的生产方式往往依赖于人工检测和操作,这不仅效率低下,而且容易出错。为了解决这一问题,越来越多的企业开始寻求利用计算机视…

流畅的Python(七)-函数装饰器和闭包

一、核心要义 主要解释函数装饰器的工作原理,包括最简单的注册装饰器和较复杂的参数化装饰器。同时,因为装饰器的实现依赖于闭包,因此会首先介绍闭包存在的原因和工作原理。 二、代码示例 1、变量作用域规则 #!/usr/bin/env python # -*-…

记录一次使用ant design 中 ConfigProvider来修改样式导致样式改变的问题(Tabs嵌套Tabs)

一 说明 继之前的一篇文章:antd5 Tabs 标签头的文本颜色和背景颜色修改 后,发现在被修改后的Tab中继续嵌套Tabs组件,这个新的Tabs组件样式跟外层Tabs样式也是一致的,如下图所示: 二 原因 在修改外层tabs样式时&…

学习Spring的第十三天

非自定义bean注解开发 设置非自定义bean : 用bean去修饰一个方法 , 最后去返回 , spring就把返回的这个对象,放到Spring容器 一 :名字 : 如果bean配置了参数 , 名字就是参数名 , 如果没有 , 就是方法名字 二 : 如果方法产生对象时 , 需要注入数据 , 在方法参数设置即可 , …

iOS 包含行间距计算富文本size

在一次开发过程中,发现带有行间距的富文本计算高度,会有不准确的情况,富文本内容明明很长,但是计算出的高度只有不到20像素,导致整个cell的高度计算异常。 需求上是文字固定宽度,最多显示3行,超…

【Simulink系列】——动态系统仿真 之 简单系统

引入 不同的系统具有不同的输入与输出。一般来说,输入输出数目越多,系统越复杂。最简单的系统只要一个输入一个输出(SISO),且其任意时刻的输出只与当前时刻的输入有关。 一、简单系统定义 对于满足下列条件的系统&a…

android 网络拦截器统一处理请求参数和返回值加解密实现

前言 项目中遇到参数加密和返回结果加密的业务 这里写一下实现 一来加深记忆 二来为以后参考铺垫 需求 项目在开发中涉及到 登陆 发验证码 认证 等前期准备接口 这些接口需要单独处理 比如不加密 或者有其他的业务需求 剩下的是登陆成功以后的业务需求接口 针对入参和返回值…