(嵌入式面经)第11章 20+公司面经杂谈(五):Momenta、瑞晟、OPPO

预计2025.03.12,完成优化/完善该内容,敬请期待!!!

(以下为学习过程中的粗略知识点,还未经过优化/完善,后续会变成更有条理的形式!!!)

SPI 通信时序:

• 时钟极性(CPOL)和时钟相位(CPHA):

o CPOL = 0:空闲状态下 SCK 为低电平。

o CPOL = 1:空闲状态下 SCK 为高电平。

o CPHA = 0:数据在时钟的第一个边沿采样。

o CPHA = 1:数据在时钟的第二个边沿采样。

• 数据传输:

o 主设备将数据发送到从设备,同时读取从设备发送回的数据(全双工通信)。

o 数据传输在 SCK 的上升沿或下降沿进行,具体取决于 CPOL 和 CPHA 设置。

SPI 通信程序实现

SPI 通信可以通过使用硬件 SPI 控制器和寄存器来实现,以下是基本步骤:

1. 初始化 SPI:

o 设置 SPI 模式(CPOL 和 CPHA)。

o 配置 SPI 时钟频率。

o 设置数据帧格式(如 8 位、16 位)。

o 配置 SS/CS 信号(通常是 GPIO 控制)。

2. 数据传输:

o 在主设备发送数据前,将 SS/CS 线拉低。

o 写入数据到 SPI 数据寄存器,SPI 控制器会自动生成时钟信号并发送数据。

o 读取 MISO 线上的返回数据。

o 数据传输完成后,将 SS/CS 线拉高。

寄存器配置

以下是一些常见的寄存器配置(以 STM32 为例):

1. SPI_CR1:SPI 控制寄存器 1

o 配置 CPOL 和 CPHA。

o 设置数据帧格式(8 位或 16 位)。

o 选择主设备或从设备模式。

o 设置 SPI 通信的时钟频率。

2. SPI_CR2:SPI 控制寄存器 2

o 配置 SPI 中断、DMA 使能等功能。

3. SPI_SR:SPI 状态寄存器

o 检查传输完成标志位(TXE),用于判断发送完成。

o 检查接收完成标志位(RXNE),用于判断接收完成。

4. SPI_DR:SPI 数据寄存器

o 读写数据时使用。

串口通信常用波特率?波特率是啥意思?

如果选用某个波特率发送指定大小的数据,怎么计算?串口有哪几部分组成?发送和接收通过什么判断已完成?串口按字节发送丢帧怎么办?

一个字符帧发送需要三个部分:起始位+数据帧+停止位。起始位是一个位周期的低电平,位周期就是每一位占用的时间;数据帧就是我们要发送的8位或9位数据,数据是从最低位开始传输的;停止位是一定时间周期的高电平。

停止位时间长短是可以通过USART控制寄存器2(USART_CR2)的STOP[1:0]位控制,可选0.5个、1个、1.5个和2个停止位。默认使用1个停止位。2个停止位适用于正常USART模式、单线模式和调制解调器模式。0.5个和1.5个停止位用于智能卡模式。

当USART_CR1寄存器的发送使能位TE置1时,启动数据发送.

当发送使能位TE置1之后,发送器开始会先发送一个空闲帧(一个数据帧长度的高电平),接下来就可以往USART_DR寄存器写入要发送的数据。在写入最后一个数据后,需要等待USART状态寄存器(USART_SR)的TC位为1,表示数据传输完成,如果USART_CR1寄存器的TCIE位置1,将产生中断。

串口的组成部分

1. 数据寄存器(DR):用于发送和接收数据。

2. 状态寄存器(SR):包含状态标志位,用于指示发送完成、接收完成、溢出错误等。

3. 波特率寄存器(BRR):用于设置波特率。

4. 控制寄存器(CR1, CR2, CR3):配置串口的各种功能,如数据位、停止位、校验位、中断使能等。

发送和接收的完成判断

• 发送完成判断:检查状态寄存器(SR)中的 TXE(传输数据寄存器空)位,如果 TXE 为 1,表示数据已发送完成,可以发送下一字节。

• 接收完成判断:检查状态寄存器(SR)中的 RXNE(接收数据寄存器非空)位,如果 RXNE 为 1,表示接收到新数据,可以读取数据。

处理串口按字节发送丢帧的问题

如果在串口通信中按字节发送数据时出现丢帧问题,可以采取以下措施:

1. 使用 DMA:配置 DMA 进行数据传输,确保数据传输过程中不会因 CPU 忙碌而丢帧。

2. 硬件 FIFO 缓冲区:使用具有硬件 FIFO 缓冲区的串口控制器,可以缓冲多个字节的数据,减少丢帧的风险。

3. 检查溢出错误:在状态寄存器(SR)中监测 ORE(溢出错误)位,如果出现溢出错误,可能需要降低波特率或优化数据处理流程。

9.平时调试用什么方法,除了debug还有什么方法?

10.常用的调试设备是什么?(示波器、万用表)怎么使用?想用示波器精确测量一段方波的幅值和周期应该怎么测量?

常用的调试设备:

示波器: 用于观察信号波形,测量信号的幅值、周期、频率等。

测量方波的幅值和周期: 将探头连接到方波信号源,调节水平(时间)和垂直(电压)刻度,读取波形的幅值和周期。

万用表: 用于测量电压、电流、电阻等基本电参数。

11.常用的数据结构?交叉链表的交叉节点怎么寻找?交叉链表的模样是什么?

12.网络有没有了解过?

13.硬件做过几层板?如果mcu下不进程序,硬件上该怎么调试?

14.结构体内存对其

15.c语言中static、volatile的作用?

16.c语言怎么开辟一块内存和释放此部分内存?

17.c语言给指定的内存存值

18. HandleThread 怎么使用?

19.怎么学习嵌入式的?(在前面问的)

20.想去哪里工作?西安或者深圳?

21.反问

还有一些记不清了,面试50分钟

2.16 中兴微电子

公司背景

深圳市中兴微电子技术有限公司(以下简称“中兴微电子”)于2003年注册成立。作为中国领先的通信IC设计公司,中兴微电子专注于通信网络、智能家庭和行业应用等通信芯片开发,自主研发并成功商用的芯片达到100多种,覆盖通信网络“承载、接入、终端”领域,服务全球160多个国家和地区,连续多年被评为“中国十大集成电路设计企业”

2.17 Oppo

公司背景

问题准备

30min 几乎纯聊天

自我介绍+关心个人背景经历等综合信息+选一个最熟悉的项目讲+遇到的难点和优化点

反问+岗位介绍

岗位用JAVA偏多 安卓开发在逐渐使用kotlin

从底软复筛转岗系统工程师的第二次面试...

岗位:系统工程师

时长:35 min

手撕:无

1. 自我介绍

2. 实习介绍,问了一个不痛不痒的问题

3. 八股,如:Linux的一些命令;继承;复用;重载;头文件重复定义

4. 对安卓的理解

5. 最困难的一门课,如何学习的这门课

6. 用过Java吗(没有,但提前看了一点)

7. 反问

投递底层软件工程师笔试之后被转岗到系统工程师,不知道是不是kpi。

35min偏聊天

自我介绍+主问项目和实习经历+遇到的难点和优化点

反问

无八股 非深挖

岗位用JAVA偏多(我是CPP...)

1、自我介绍

2、问项目中的线程池:怎么判断线程繁忙、管理者线程行为

3、问最新的项目做了什么事情

4、本科那个智能专业都学啥

八股:

CPP/计算机网络/数据库/操作系统拷打一遍

1、从浏览器输入网址后发生了

剩余60%内容,订阅专栏后可继续查看/也可单篇购买

作者简介:仅用大半年时间0基础天坑急转嵌入式开发,逆袭成功拿下华为、vivo、小米等15个offer,面试经验60+,收藏20+面经,分享自己的求职历程与学习心得。 专栏内容:最新求职与学习经验,详细讲解了嵌入式开发的学习路径、项目经验分享、简历优化技巧、面试心得及实习经验,从测评,笔试,技术面,HR面,AI面,主管面,谈薪一站式服务,助你突破技术瓶颈、打破信息差,争取更多大厂offer。

全部评论

相关推荐

1. 如何在嵌入式系统中实现蓝牙低功耗(BLE)通信?2. 在STM32中如何配置和使用ADC进行模拟信号采集?3. 嵌入式系统中如何实现PID控制算法?4. 如何在嵌入式系统中实现图像的边缘检测?5. 在FreeRTOS中如何实现任务的优先级调度?6. 嵌入式系统中如何实现动态内存管理?7. 如何在STM32中实现I2C通信?8. 在RT-Thread中如何实现定时器的使用?9. 嵌入式系统中如何实现数据加密与解密?10. 如何在STM32中配置和使用SPI接口?11. 嵌入式系统中如何实现音频信号的处理与分析?12. 在FreeRTOS中如何实现任务的挂起与恢复?13. 如何在嵌入式系统中实现RFID读写功能?14. 在STM32中如何实现CAN总线的接收与发送?15. 嵌入式系统中如何实现温湿度传感器的数据采集?16. 如何在RT-Thread中实现信号量的使用?17. 嵌入式系统中如何实现电池电量监测?18. 在STM32中如何实现USB主机模式的通信?19. 如何在嵌入式系统中实现数据压缩与解压缩?20. 在FreeRTOS中如何实现软件定时器的使用?21. 嵌入式系统中如何实现NFC通信?22. 如何在STM32中配置和使用RTC进行时间管理?23. 嵌入式系统中如何实现机器视觉算法?24. 在RT-Thread中如何实现消息邮箱的使用?25. 如何在嵌入式系统中实现数据的远程监控?26. 在STM32中如何实现PWM信号的调制与解调?27. 嵌入式系统中如何实现多线程的资源共享?28. 如何在FreeRTOS中实现任务的优先级动态调整?29. 嵌入式系统中如何实现环境光传感器的数据处理?30. 在STM32中如何实现LCD显示屏的图形绘制?答案附在面经中https://www.nowcoder.com/creation/manager/columnDetail/MJNwoM
点赞 评论 收藏
分享
03-04 22:07
已编辑
南京邮电大学 Python
更新时间2025/3/3先说BG:双非本硕本人是组里有嵌入式基础,熟悉ROS的使用,但是嵌入式本身基础不是很强,所以实际做法是转了大模型有关的,了解了深度学习和pytorch,写论文靠的是联邦学习,做过有关RAG的简单不用卡的项目,参加比赛是在赛方的硬件平台上部署了大模型实现多模态交互。2025.1.07 满帮 算法工程师实习生1.09 拒绝2025.1.14 小米投递 算法工程师实习生1.16 拒绝  (T_T 其实知道自己自不量力但还是想投)2025.2.14 小鹏 具身智能算法工程师(实习)2.14 秒拒 (从这里就觉得感觉中大厂应该是没机会了)2025.2.14 小米大模型应用开发实习生尚未进展,不过估计也凉,试试看而已,5个不投白不投2.16 评估中2.27 已挂2025.2.15 华为 AI软开师兄说先投了,反正要一个月之后才有结果2025.2.18 字节跳动 大模型算法实习生-开发者服务2.18 秒拒2025.2.19 腾讯 技术研究-机器人方向测评先做2025.2.19 作业帮 2.28 已挂2025.2.19 字节跳动 2.20 评估中2.26 约一面2.28 感谢信2025.2.24 oppo 2025.2.24 网易互娱2025.2.25 vivo2.26 发测评2025.2.26 饿了么 算法工程师-大模型2025 2.27 网易伏羲 (智能工程机器人)2025.2.28 美团-测开2025.3.2 蚂蚁集团2025.3.3 淘天集团拒绝2025.3.3 腾讯音乐娱乐2025.3.3 飞书测开2025.3.3 小米 测开3.6 一面#实习#
点赞 评论 收藏
分享
评论
5
7
分享

创作者周榜

更多
牛客网
牛客企业服务