【经验贴】单片机知识点汇总
前言
在这部分分享里面,我只会涉及各部分的考点,但是不会把答案放出来,有一些我遇到的感觉不错的题也会放上来。这么做一方面是我自己也没法保证自己的答案是完全正确的(之前就有过看一个面经,然后里面的答案是错误的,在面试的时候吃过亏);另一方面是希望大家能够自己去查找,在理解的基础上记忆才能记得更牢,而且能对整个原理有一个认知,而不是完完全全靠背答案,这样效果很差,而且经不起面试官深入地问。这里把大部分的要点都总结出来了,就算一点一点去查资料也能在一周左右的时间内复习完。对于过于基础的知识就不提了,只提一些比较不容易注意到的点和比较重要的点。这里提到的知识点都是考察率非常高的,希望大家能把这些知识点弄懂,于此同时也要不断去看其他人的笔经面经,从里面找到自己不会的知识点,不断丰富自己的知识库。
单片机这部分主要是针对各自在项目中常用的芯片来讲,一般来说是以STM32为主。因为我大学期间主要是用到STM32的芯片,所以下面的内容也主要是围绕STM32来写的。
GPIO
- IO有哪三种常用方式?
- 状态怎么转换?
中断
- 什么是中断?
- 中断的触发方式有哪些?
- 哪些函数不能在中断中使用?
- 什么叫不可重入函数?
- 中断与异常有何区别?
- 中断的响应执行流程是什么?
- 写一个中断服务需要注意哪些?
- 中断和轮询哪个效率高?怎样决定是采用中断方式还是采用轮询方式去实现驱动?
- 中断优先级有哪些?
- 单片机这种没有操作系统的,中断处理函数不能有输入参数也不能有函数返回
定时器
- 定时器的特殊工作模式有哪些?
- 定时器PWM?
- 如何实现PWM调速?
- 定时器中断?
通信协议
- 什么是异步传输和同步传输?
- UART、IIC、SPI对比的优缺点?
UART串口
- usart和uart的区别?
- uart优缺点?
- 要配置什么参数?
- 时序?
- 传输速率?
- RX为什么要上拉?
- 怎么传输浮点数?
- 串口如何接收不定长数据?
- 软件怎么实现自动波特率检测?
IIC
- IIC的特点
- 数据有效性
- 三种信号
- 画IIC时序图
- 数据传输流程
- 为什么要上拉?
- IIC总线怎么实现?
- IIC工作速率
- 怎样用IO口模拟IIC?
- IIC如何进行读写操作?
- IIC总线仲裁机制是怎么样的?
- 主设备3.3v从设备1.8v,不使用电平转换如何通过搭电路实现通信(这题我在某次笔试中遇到过,不过至今仍不知道答案,有懂的大佬可以在下面评论或者私信我)
SPI
- 介绍SPI
- 最大传输速率受什么影响?
- 四种模式及其对应的时序图
- SPI如何读写?
- SPI总线怎么实现?
其他接口
DMA
- DMA是什么?
- 为什么要用DMA?
- DMA的实现机制是怎么样的?
- DMA与中断的比较
ADC
- 什么是ADC?
- ADC是怎么实现的?
- ADC种类有哪些?
- ADC获取的数据有哪些处理、滤波方法?
- ADC时钟由谁提供?
存储
- flash操作注意事项
- NAND FLASH和NOR FLASH的区别?
- 基于ROM的运行方式和基于RAM的运行方式有什么区别?
- MCU启动流程
- 简单说说你用过的STM32的一些芯片配置,CPU主频,flash和RAM的大小
- arm有几个寄存器?什么是CPSR,SPSR?什么时候用到?
- PC寄存器的作用是什么?
- 通用寄存器包括R0~R15,可以分为具体哪三类?
- ARM系统中,在函数调用的时候,参数是通过哪种方式传递的?
- ARM指令集分为几类?
- ARM处理器有几种工作状态?
- 什么是哈佛结构和冯诺依曼结构?
其他问题
- bootloader具体做了什么?
- 什么是交叉编译?
- 为什么需要交叉编译?
- 单片机main函数之前做了什么工作?
- 如何对绝对地址0x100000赋值?
- 51单片机种PSW代表什么?