前言:基本覆盖了单片机面试的问题,也是学习单片机的必备知识,不能死记硬背,最好是理解其工作原理,然后背逻辑框架。
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代表什么?
此文转载至牛客网-面经贴- A-Tang用户。