写在前面:
博主也是刚入社会的小牛马,如果下面有写的不好或者写错的地方欢迎大家指出~
一、四大件基础知识
1、计算机组成原理
(1)简单介绍一下中断是什么。
①回答:
②难度系数:★★
③难点分析:
(2)中断和轮询的区别是什么?
①回答:
②难度系数:★
③难点分析:
2、数据结构
(1)用C语言给定一个链表结构体,试编写一子函数将链表翻转。
①回答:
②难度系数:★
③难点分析:
3、学习资料
(1)计算机组成原理:
计算机组成原理 第一章(计算机系统概论)—第一节(计算机系统简介)-CSDN博客
计算机组成原理 第一章(计算机系统概论)—第二节(计算机的基本组成)-CSDN博客
计算机组成原理 第一章(计算机系统概论)—第三节(计算机硬件的主要技术指标)-CSDN博客
计算机组成原理 第二章(系统总线)—第一节(总线的基本概念、分类与特性)-CSDN博客
计算机组成原理 第二章(系统总线)—第二节(总线结构)-CSDN博客
计算机组成原理 第二章(系统总线)—第三节(总线控制)-CSDN博客
计算机组成原理 第三章(存储器)—第一节(概述)-CSDN博客
计算机组成原理 第三章(存储器)—第二节(主存储器(上))-CSDN博客
计算机组成原理 第三章(存储器)—第三节(主存储器(下))-CSDN博客
计算机组成原理 第三章(存储器)—第四节(高速缓冲存储器)-CSDN博客
计算机组成原理 第三章(存储器)—第五节(辅助存储器)-CSDN博客
计算机组成原理 第四章(输入输出系统)—第一节(概述)-CSDN博客
计算机组成原理 第四章(输入输出系统)—第二节(I/O设备)-CSDN博客
计算机组成原理 第四章(输入输出系统)—第三节(I/O接口)-CSDN博客
计算机组成原理 第四章(输入输出系统)—第四节(程序查询方式)-CSDN博客
计算机组成原理 第四章(输入输出系统)—第五节(程序中断方式)-CSDN博客
计算机组成原理 第四章(输入输出系统)—第六节(DMA方式)-CSDN博客
计算机组成原理 第五章(计算机的运算方法)—第一节(无符号数和有符号数)-CSDN博客
计算机组成原理 第五章(计算机的运算方法)—第二节(数的定点表示和浮点表示)-CSDN博客
计算机组成原理 第五章(计算机的运算方法)—第三节(定点运算(上))-CSDN博客
计算机组成原理 第五章(计算机的运算方法)—第四节(定点运算(下))-CSDN博客
计算机组成原理 第五章(计算机的运算方法)—第五节(浮点四则运算)-CSDN博客
计算机组成原理 第五章(计算机的运算方法)—第六节(算数逻辑单元)-CSDN博客
计算机组成原理 第六章(指令系统)—第一节(机器指令)-CSDN博客
计算机组成原理 第六章(指令系统)—第二节(操作数类型和操作类型)-CSDN博客
计算机组成原理 第六章(指令系统)—第三节(寻址方式)-CSDN博客
计算机组成原理 第六章(指令系统)—第四节(指令格式)-CSDN博客
计算机组成原理 第六章(指令系统)—第五节(RISC技术)-CSDN博客
计算机组成原理 第七章(CPU的工作过程)—第一节(CPU的结构和功能)-CSDN博客
计算机组成原理 第七章(CPU的工作过程)—第二节(指令周期)-CSDN博客
计算机组成原理 第七章(CPU的工作过程)—第三节(指令流水)-CSDN博客
计算机组成原理 第七章(CPU的工作过程)—第四节(中断系统)-CSDN博客
计算机组成原理 第八章(控制单元的功能)—第一节(微操作命令的分析)-CSDN博客
计算机组成原理 第八章(控制单元的功能)—第二节(控制单元的功能)-CSDN博客
计算机组成原理 第九章(控制单元的设计)—第一节(组合逻辑设计)-CSDN博客
计算机组成原理 第九章(控制单元的设计)—第二节(微程序设计(上))-CSDN博客
计算机组成原理 第九章(控制单元的设计)—第三节(微程序设计(下))-CSDN博客
(2)数据结构:
(3)操作系统理论:
操作系统理论 第一章(操作系统引论)—第一节(操作系统的目标和作用)-CSDN博客
操作系统理论 第一章(操作系统引论)—第二节(操作系统的发展过程)-CSDN博客
操作系统理论 第一章(操作系统引论)—第三节(操作系统的基本特性)-CSDN博客
操作系统理论 第一章(操作系统引论)—第四节(操作系统的主要功能)-CSDN博客
操作系统理论 第一章(操作系统引论)—第五节(OS结构设计)-CSDN博客
操作系统理论 第二章(进程的描述与控制)—第一节(前趋图和程序执行)-CSDN博客
操作系统理论 第二章(进程的描述与控制)—第二节(进程的描述)-CSDN博客
操作系统理论 第二章(进程的描述与控制)—第三节(进程控制)-CSDN博客
操作系统理论 第二章(进程的描述与控制)—第四节(进程同步(上))-CSDN博客
操作系统理论 第二章(进程的描述与控制)—第五节(进程同步(下))-CSDN博客
操作系统理论 第二章(进程的描述与控制)—第六节(经典进程的同步问题)-CSDN博客
操作系统理论 第二章(进程的描述与控制)—第七节(进程通信)-CSDN博客
操作系统理论 第二章(进程的描述与控制)—第八节(线程的基本概念)-CSDN博客
操作系统理论 第二章(进程的描述与控制)—第九节(线程的实现)-CSDN博客
操作系统理论 第三章(处理机调度与死锁)—第一节(处理机调度的基本概念)-CSDN博客
操作系统理论 第三章(处理机调度与死锁)—第二节(作业与作业调度)-CSDN博客
操作系统理论 第三章(处理机调度与死锁)—第三节(进程调度)-CSDN博客
操作系统理论 第三章(处理机调度与死锁)—第四节(实时调度)-CSDN博客
操作系统理论 第三章(处理机调度与死锁)—第五节(死锁概述)-CSDN博客
操作系统理论 第三章(处理机调度与死锁)—第六节(预防死锁)-CSDN博客
操作系统理论 第三章(处理机调度与死锁)—第七节(避免死锁)-CSDN博客
操作系统理论 第三章(处理机调度与死锁)—第八节(死锁的检测与解除)-CSDN博客
操作系统理论 第四章(存储器管理)—第一节(存储器的层次结构)-CSDN博客
操作系统理论 第四章(存储器管理)—第二节(程序的装入和链接)-CSDN博客
操作系统理论 第四章(存储器管理)—第三节(连续分配存储管理方式)-CSDN博客
操作系统理论 第四章(存储器管理)—第四节(覆盖与对换)-CSDN博客
操作系统理论 第四章(存储器管理)—第五节(存储管理方式(上))-CSDN博客
操作系统理论 第四章(存储器管理)—第六节(存储管理方式(下))-CSDN博客
操作系统理论 第五章(虚拟存储器)—第一节(虚拟存储器概述)-CSDN博客
操作系统理论 第五章(虚拟存储器)—第二节(请求分页存储管理方式)-CSDN博客
操作系统理论 第五章(虚拟存储器)—第三节(页面置换算法)-CSDN博客
操作系统理论 第五章(虚拟存储器)—第四节(“抖动”与工作集)-CSDN博客
操作系统理论 第五章(虚拟存储器)—第五节(请求分段存储管理方式)-CSDN博客
操作系统理论 第六章(输入输出系统)—第一节(I/O系统的功能、模型和接口)-CSDN博客
操作系统理论 第六章(输入输出系统)—第二节(I/O设备和设备控制器)-CSDN博客
操作系统理论 第六章(输入输出系统)—第三节(中断处理程序)-CSDN博客
操作系统理论 第六章(输入输出系统)—第四节(设备驱动程序)-CSDN博客
操作系统理论 第六章(输入输出系统)—第五节(与设备无关的I/O软件)-CSDN博客
操作系统理论 第六章(输入输出系统)—第六节(用户层的I/O软件)-CSDN博客
操作系统理论 第六章(输入输出系统)—第七节(缓冲区管理)-CSDN博客
操作系统理论 第六章(输入输出系统)—第八节(磁盘存储器的性能和调度)-CSDN博客
操作系统理论 第七章(文件管理)—第一节(文件和文件系统)-CSDN博客
操作系统理论 第七章(文件管理)—第二节(文件的逻辑结构)-CSDN博客
操作系统理论 第七章(文件管理)—第三节(文件目录)-CSDN博客
操作系统理论 第七章(文件管理)—第四节(文件共享)-CSDN博客
操作系统理论 第八章(磁盘存储器的管理)—第一节(外存的组织方式)-CSDN博客
操作系统理论 第八章(磁盘存储器的管理)—第二节(文件存储空间的管理)-CSDN博客
操作系统理论 第八章(磁盘存储器的管理)—第三节(提高磁盘I/O速度的途径)-CSDN博客
(4)计算机网络:
二、基于STM32的软件开发及几个通信协议
1、时钟树
(1)时钟信号的作用是什么?
(1)简单介绍下STM32的时钟信号。
①回答:
STM32的时钟系统为芯片和外设提供精准的时序基准,其核心是多源时钟架构与灵活分配机制,主要分为四个部分:
时钟源:
高速时钟:HSI(内部RC振荡器,8MHz,低成本但精度低)和HSE(外部晶振,如8MHz,高精度)。
低速时钟:LSI(40kHz,用于看门狗)和LSE(32.768kHz外部晶振,用于RTC精准计时)。
PLL锁相环:通过倍频(如HSE×9)生成高频系统时钟(如72MHz),是性能提升的关键。
时钟树:
通过分频/倍频将时钟分配到不同总线(如AHB、APB1/APB2),外设按需选择时钟源,例如APB1外设(UART/I2C)最高36MHz,APB2外设(ADC/高级定时器)可达72MHz。
②难度系数:★★
③难点分析:时钟信号无时无刻都会用到,但要给出一个逻辑清晰、语句连贯的回答,在猝不及防的情况下可能会稍微有点难。
(2)时钟信号的作用是什么?
①回答:
时钟信号是微控制器(如STM32)的“心跳”,其核心作用是为芯片内各模块的操作提供同步基准,确保系统协调工作。具体体现在四个方面:
同步时序控制:
时钟信号可以统一操作节拍,所有数字电路(CPU、总线、外设)依赖时钟边沿(上升沿/下降沿)触发动作,避免逻辑混乱,例如CPU每条指令的执行周期以时钟周期为单位(如72MHz时钟下,每个周期约13.9ns),以及总线传输(如AHB、APB)的读写操作需严格对齐时钟信号。
外设功能协调:
可实现精准定时与速率控制,如定时器(TIM)通过时钟分频生成PWM、捕获/比较信号,以及串口(UART)波特率由时钟分频计算。另外还可实现多模块协同,如ADC采样、DMA传输、中断触发等操作需时钟同步以避免竞争冲突(如DMA需转运ADC读取的数据,如果二者不同步,往往容易引发缓冲区数据错乱)。
②难度系数:★★★
③难点分析:时钟信号无时无刻都会用到,但要将其具体化,并列出使用场景,在猝不及防的情况下可能会稍微有点难。
2、GPIO外设
(1)简单介绍下GPIO。
①回答:
②难度系数:★★
③难点分析:
3、SPI协议
(1)介绍下SPI协议。
①回答:
SPI是一种高速全双工的同步串行协议,通过主设备控制SCLK和SS信号,配合MOSI/MISO实现数据交换。其核心优势是速率高、硬件简单,但需注意主从模式匹配和片选管理。典型应用包括Flash存储器和传感器,例如STM32通过SPI以模式0读取温湿度数据时,能在1MHz时钟下实现微秒级响应。相比I2C,SPI更适合对速度要求严苛且设备数量较少的场景。
②难度系数:★★★
③难点分析:一个通信协议有很多内容,候选人不可能全部拎出来讲一遍,于是这就涉及到取舍的问题了,既然要直接介绍一个通信协议,不妨从其特点、优势和应用场景切入,而非将其时序或者硬件电路仔仔细细地介绍一遍。
(2)SPI通信中出现通讯故障,应该如何排查?
①回答:
SPI通信故障排查需分四步:
硬件检查:确认四线连接正常、电平匹配,示波器观察SS和SCK信号
协议验证:核对主从模式(CPOL/CPHA)、数据位序和SCK频率是否匹配
软件调试:检查SPI初始化参数,用逻辑分析仪抓取数据帧,定位传输断点
工具调试:用逻辑分析仪抓取波形,结合状态寄存器定位错误类型
②难度系数:★★
③难点分析:回答此问题最好有实践经验,亦或是非常熟悉SPI协议。
(3)说说过去在项目中运用到SPI协议时难忘的经历。
①回答:
②难度系数:★★★★
③难点分析:
4、I2C协议
(1)介绍下I2C协议。
①回答:
I2C是一种两线制的同步串行协议,通过SDA和SCL实现多设备通信,主设备通过唯一地址选择从设备,利用起始/停止条件控制传输周期,并通过ACK机制确保数据可靠性,其优势在于引脚资源占用少、支持多主多从,但速率较低,适用于传感器、EEPROM等场景。例如,STM32通过I2C以100kHz读取SHT30传感器时,需严格遵循地址帧、数据帧和应答的时序逻辑。相比SPI,I2C更适合设备数量多但数据量小的系统。
②难度系数:★★★
③难点分析:一个通信协议有很多内容,候选人不可能全部拎出来讲一遍,于是这就涉及到取舍的问题了,既然要直接介绍一个通信协议,不妨从其特点、优势和应用场景切入,而非将其时序或者硬件电路仔仔细细地介绍一遍。
(2)I2C通信中出现通讯故障,应该如何排查?
①回答:
I2C通信故障排查需分四步:
硬件检查:确认SDA/SCL物理连接、上拉电阻和供电正常,示波器观察信号完整性
协议分析:验证地址匹配、ACK响应和时序参数(如时钟频率、建立时间)
软件调试:检查I2C初始化参数,用逻辑分析仪抓取数据帧,定位传输断点
工具调试:用逻辑分析仪抓取波形,结合状态寄存器定位错误类型
②难度系数:★★
③难点分析:回答此问题最好有实践经验,亦或是非常熟悉I2C协议。
(3)说说过去在项目中运用到I2C协议时难忘的经历。
①回答:
②难度系数:★★★★
③难点分析:
5、CAN协议
(1)介绍下CAN协议。
①回答:
CAN是一种多主、异步、差分信号的串行通信协议,专为高噪声环境下的可靠通信设计(如汽车电子、工业控制),CAN总线中所有节点平等,可主动发起通信,通过非破坏性仲裁解决总线竞争,并且其具有高可靠性,内置有CRC校验、错误帧重传等机制。
②难度系数:★★★
③难点分析:一个通信协议有很多内容,候选人不可能全部拎出来讲一遍,于是这就涉及到取舍的问题了,既然要直接介绍一个通信协议,不妨从其特点、优势和应用场景切入,而非将其时序或者硬件电路仔仔细细地介绍一遍。
(2)CAN总线上有节点收不到报文,应该如何进行排查?
①回答:
排查CAN节点收不到报文的问题需分层逐步分析:
硬件层:检查终端电阻、线缆通断及信号波形,确认物理连接正常
协议层:验证波特率一致性、ID过滤设置及错误计数器状态,排除配置错误
软件层:审查初始化代码与接收逻辑,确保中断和缓冲区管理无误
环境干扰:检测电磁干扰并优化拓扑结构
②难度系数:★★
③难点分析:回答此问题最好有实践经验,亦或是非常熟悉CAN协议。
(3)说说过去在项目中运用到CAN协议时难忘的经历。
①回答:
②难度系数:★★★★
③难点分析:
6、USART协议
7、DMA外设
8、学习资料
STM32入门教程(RTC实时时钟&BKP备份寄存器篇)-CSDN博客
编程技巧(基于STM32)第一章 定时器实现非阻塞式程序——按键控制LED灯闪烁模式-CSDN博客
三、基于51单片机的软件开发及NEC协议
1、中断
2、PWM波驱动电机
3、学习资料
51单片机从零开始入门教程 第一章(51单片机基础知识与工程创建)-CSDN博客
51单片机从零开始入门教程 第二章(LED篇)-CSDN博客
51单片机从零开始入门教程 第三章(独立按键篇)-CSDN博客
51单片机从零开始入门教程 第四章(数码管篇)-CSDN博客
51单片机从零开始入门教程 第五章(模块化编程及调试工具)-CSDN博客
51单片机从零开始入门教程 第六章(矩阵键盘篇)-CSDN博客
51单片机从零开始入门教程 第七章(定时器篇)-CSDN博客
51单片机从零开始入门教程 第九章(LED点阵屏篇)-CSDN博客
51单片机从零开始入门教程 第十章(DS1302实时时钟篇)-CSDN博客
51单片机从零开始入门教程 第十一章(蜂鸣器篇)-CSDN博客
51单片机从零开始入门教程 第十二章(存储器篇)-CSDN博客
51单片机从零开始入门教程 第十三章(传感器篇)-CSDN博客
51单片机从零开始入门教程 第十四章(液晶屏篇)-CSDN博客
51单片机从零开始入门教程 第十五章(直流电机篇)-CSDN博客
51单片机从零开始入门教程 第十六章(模数转换篇)-CSDN博客
51单片机从零开始入门教程 第十七章(红外遥控篇)-CSDN博客
四、基于Arduino/ESP8266的软件开发
1、
2、学习资料
(1)Arduino:
(2)ESP8266:
五、嵌入式操作系统
1、FreeRTOS
(1)FreeRTOS与一般的操作系统(如Windows、Linux)有什么区别?
2、µC/OS-III
3、Linux
4、学习资料
(1)FreeRTOS:
FreeRTOS从入门到精通 第一章(初识FreeRTOS)-CSDN博客
FreeRTOS从入门到精通 第二章(FreeRTOS移植)-CSDN博客
FreeRTOS从入门到精通 第三章(任务创建和任务删除)-CSDN博客
FreeRTOS从入门到精通 第四章(任务挂起和恢复)-CSDN博客
FreeRTOS从入门到精通 第五章(中断管理)-CSDN博客
FreeRTOS从入门到精通 第六章(FreeRTOS临界段代码保护及任务调度器挂起和恢复)-CSDN博客
FreeRTOS从入门到精通 第七章(FreeRTOS列表和列表项)-CSDN博客
FreeRTOS从入门到精通 第八章(任务调度)-CSDN博客
FreeRTOS从入门到精通 第九章(时间片调度)-CSDN博客
FreeRTOS从入门到精通 第十章(FreeRTOS任务相关API函数)-CSDN博客
FreeRTOS从入门到精通 第十一章(FreeRTOS时间管理)-CSDN博客
FreeRTOS从入门到精通 第十二章(FreeRTOS消息队列)-CSDN博客
FreeRTOS从入门到精通 第十三章(信号量)-CSDN博客
FreeRTOS从入门到精通 第十四章(队列集)-CSDN博客
FreeRTOS从入门到精通 第十五章(事件标志组)-CSDN博客
FreeRTOS从入门到精通 第十六章(任务通知)-CSDN博客
FreeRTOS从入门到精通 第十七章(软件定时器)-CSDN博客
FreeRTOS从入门到精通 第十八章(Tickless低功耗模式)-CSDN博客
FreeRTOS从入门到精通 第十九章(内存管理)-CSDN博客
(2)µC/OS-III:
µCOS-III从入门到精通 第一章(初识µCOS-III)-CSDN博客
µCOS-III从入门到精通 第二章(µCOS-III移植)-CSDN博客
µCOS-III从入门到精通 第三章(任务创建和任务删除)-CSDN博客
µCOS-III从入门到精通 第四章(任务挂起和恢复)-CSDN博客
µCOS-III从入门到精通 第五章(中断管理)-CSDN博客
µCOS-III从入门到精通 第六章(µC/OS-III临界区代码保护及任务调度锁)-CSDN博客
µCOS-III从入门到精通 第七章(任务调度)-CSDN博客
µCOS-III从入门到精通 第八章(时间片调度)-CSDN博客
µCOS-III从入门到精通 第九章(时间管理)-CSDN博客
µCOS-III从入门到精通 第十章(µC/OS-III消息队列)-CSDN博客
µCOS-III从入门到精通 第十一章(信号量)-CSDN博客
µCOS-III从入门到精通 第十二章(任务信号量及队列)-CSDN博客
µCOS-III从入门到精通 第十三章(事件标志组)-CSDN博客
µCOS-III从入门到精通 第十四章(软件定时器)-CSDN博客
µCOS-III从入门到精通 第十五章(µC/OS-III内存管理)-CSDN博客
六、汇编语言
持续更新