嵌入式软件面试总结

背景

先说说本人的背景,我,一个大专人,从事嵌入式开发两年了,之前在一家公司是负责单片机和物联网开发的。2020年年底我选择了裸辞(主要想出去玩)。直到春节结束后,出来找工作。

我的技术栈:单片机(51、stm32)、freertos、MQTT,懂硬件。

关于面试题

首先,每一家的公司方式面试不一样, 前一晚先复习一些C语言基础,我面试的公司有十几家,出的题基本上是大同小异,参考下面的链接:

嵌入式C语言基础(转载)
STM32尝试(转载)

上面两套题是好经典的,我面试了十几家公司,有三分之一都在里面出题。不过,前提是你首先得有个底子,会变通。

然后提前半个月刷一下 leetcode,找找写代码得感觉。主攻《剑指offer》。

嵌入式通讯协议

数据结构在嵌入式占的比例往往是一小部分,面试官更加看重的是具体的实际项目经验。一些基本的通讯协议,比如I2C、SPI、UART,把那些时序图、细节都得记好,我是吃过这个亏的,虽然面试官不会叫你手撕I2C协议,但是他会问的很细很细,比如说应答信号的时候SDA的电平是怎么变化的,答不出来就尴尬啦。

我下面对一些常用的协议做一个总结

  1. I2C
    (1)半双工模式。
    (2)起始信号 SCL高电平期间 SDA产生下降沿。
    (3)ACK应答信号 SCL高电平期间 SDA保持低电平。
    (4)NACK应答信号 SCL高电平期间 SDA保持高电平。
    (5)数据流 起始信号 +从机地址 + 发送数据标志位 + 应答信号+ 数据 +接收数据。。。应答信号+结束信号。
    (6)空闲信号 SCL SDA 都位高电平。
    (7)结束信号 SCL位高电平期间 SDA给一个上升沿信号。

  2. SPI
    (1)高速全双工的同步通讯总线
    (2)4根总线 分别是

  		 MISO 主设备数据输入,从设备数据输出
  		MOSI 主设备数据输出,从设备数据输入
  		SCLK 时钟信号,由从设备产生
  		CS 片选信号 由主设备控制 拉低设备CS线才可以进行读写设置,

(3)SPI的四种操作模式 模式0 模式1 模式2 模式3 他们的区别是?

CPHA 第一个跳变沿和第二个跳变沿 读取数据。
CPOL 0和1决定时钟空闲电平。

(4)硬件SPI和软件SPI的区别有哪些

硬件SPI效率比软件SPI效率要高 硬件SPI是直接读取寄存器的,软件
需要模拟时钟拉高拉低,但是硬件的看其设备有没有支持,软件的话一般IO口都可以用。

(5)缺点 没有应答机制 只支持单个主机

碰壁总结

  1. 作为一个大专人,学历是最大的阻碍,有时候说统招本科的时候,是挺大打击的。如果你也是大专人,个人感觉还是得弄一个本科证,专升本也好。起码有一个面试机会,个人感觉这个行业大多数都是能力大于学历的,但是学历往往是一个敲门砖,你再吊,人家就觉得你是个大专人,拒之门外。残酷!
  2. 提前总结一个你认为最屌的项目,然后介绍的时候稍微加大幅度的总结,面试的时候很有作用。
  3. 嵌入式因为涉及到产品量产,很多公司都是单休,但是个人觉得,单休千万千万要慎重,毕竟这篇文章,是因为我现在的新公司的双休的时候周末写的。单休基本没有有空写博客,甚至没有空学习新技能提升自己。
  4. leetcode建议每天一道,真的真的很有用,没时间的话每天一道题解。数据结构天下第一。
  5. 学习,学习,学习!!!!!!

你可能感兴趣的:(嵌入式,面试)