后续会不定时更新。。。。。。
1.单片机中时钟的概念,以及简述单片机的时钟源区别
2.串口通信中波特率的作用,以及数据传输格式
3.单片机中定时器的分类,以及使用通用定时器如何产生1ms的延时
4.ADC中的通道作用,DMA中的通道作用
5.解释一下终端的含义及作用,优先级
6.串口接收中断的设置流程
7.按键中断的设置流程
8.NVIC的作用
9.SPI通信的作用,简述SPI通信的四种工作模式
CPOL–极性
CPHA–相位
10.DMA的作用,以及DMA通道的含义
DMA直接存储访问,DMA主要是用数据传输,不经过CPU,提高CPU工作效率,以及减少数据因为传输数量太大造成的阻塞问题,
DMA通道–只要是针对单片机的片上外设,因为片上外设不是一种,所以每一个通道都是对应一个片上外设。
11.芯片 模块 选型的侧重点,简述对W25Q16的理解认识
成本 性能 功耗 尽量是和公司其他产品相关的芯片或者模块,减少开发周期
w25q16–存储芯片,接口–SPI
SPI通信速率–80MHZ,在实际的应用中需要根据使用的模块来确定,SPI通信速率
供电:3.3
12.SPI通信驱动W25Q16芯片,简述读写流程
提示:写操作的流程,读操作的流程,结合相关指令描述通信过程
读操作:0x03
1.拉低片选信号
2.发送0x03指令
3.发送24位地址–高八位 中间的八位 低八位
4.按照用户需求,读取n个数据(n–按客户的要求)
5.拉高片选
13.flash和eeprom的区别
14.SPI中时钟极性和相位的作用
15.串行通信和并行通信的区别
16.IIC总线的读写时序,分别描述一下
17.IIC通信和SPI通信的区别
1.电气特性分析–硬件 供电 所使用通信线路
2.传输方式—IIC半双工 SPI全双工
3.速率—IIC 100khz SPI–80MHZ
18.嵌入式开发中屏幕选型的侧重点有哪些?
分辨率 刷新率 功耗
19.GPIO口的8种工作模式
20.串口的配置流程
时钟,串口数据传输格式 ,波特率 中断(接收或者发送)
21.STM32有几个时钟源?
外部高速时钟–HSE
外部低速时钟–LSE
内部高速时钟–HSI
内部低速时钟–LSI
倍频时钟信号–PLL(由外部高速时钟或者内部高速时钟倍频得到)
MQTT协议的组成,及分析
ESP8266的驱动流程
定时器如何产生1S延时
简述一下对操作系统的理解
1.操作系统是一个大型应用软件
2.帮助使用人员合理的进行内存分配,以及对设备上资源进行管理(文件系统,设备上各个外设)
使用实时操作系统的优势(为什么要使用实时操作系统)
裸机操作–一般用于一些简单的外设驱动,以及一些不太复杂的逻辑处理部分
当我们的项目中实现的功能偏多的时候,以及各个外设之间还有通信需求,逻辑处理比较复杂的时候,那么就需要考虑操作系统
操作系统中可以帮助工作人员对复杂的逻辑进行处理,处理的依据就是内部有一个调度器(调度器工作的依据任务的优先级),任务的优先级相同的话–时间片
中断优先级如何分组
中断优先级分组–8组
占先优先级–具备打断正在执行的中断的能力
次级优先级–不具备打断其他中断的能力
适应多变的环境
分组的依据:根据占先优先级或者次级优先级占用位数
RT-THREAD调度的原理
1.RTT操作系统多线程的
2.RTT系统中有一个调度器
3.根据优先级(32),数字越小优先级越大,相同优先级根据时间片
RT-THREAD中优先级的作用
1.优先级主要是用于多任务(线程),用于区别线程执行先后顺序
2.就绪队列中,任务排列顺序就是按照优先级进行的
RT-THread中信号量的作用
用于同步,代表线程间是有关联的,执行是有顺序的,
信号量表示的就是资源的个数
项目使用了自定义协议,是什么结构?
简述设置系统时钟的基本流程?
(1)打开HSE,等待就绪后,设置Flash等待操作。
(2)设置AHB,APB1,APB2分频系数,确定他们各自和系统时钟的关系。
(3)设置CFGR寄存器确定PLL的时钟来源和倍频系数(HSE外部8M*9倍=72MHz)。
(4)使能PLL,将系统时钟源切换到PLL.
简述对数组,指针,链表,结构体的理解
单片机中AD转换的工作原理
AD–模数转换器
转换方法–逐次逼近型转换方式
AD内部–DA转换器–参考量数值转换为模拟量,和外界的待转换的模拟量对比
参考量—3.3V
简述一下你对zigbee的理解?
Zigbee 是基于 IEEE802.15.4 标准的低功耗个域网协议。根据这个协议规定
的技术是一种短距离、低功耗的无线通信技术。
Zigbee的特性:
近距离、低复杂度、自组织、低功耗、低数据速率、低成本
自组织—自组网
应用场景:
智能家居
工业控制
消费类电子
zigbee中系统初始化的流程
zigbee中OSAL的作用?
C语言中STATIC关键字的作用
说一下c语言的头文件和用途。
使用头文件时双引号和尖括号的区别是什么?
使用快速排序对十个数值进行排序
请解释电阻、电容、电感封装的含义:0402、0603、0805
0402–4mil*2mil
常见的串口通信协议分类
SPI iic usart
按照时钟分类—
使用不同的时钟信号:USART
使用相同的时钟信号:SPI IIC
按照收发方式:
全双工–USART SPI
半双工–iic
485接口 232接口 422接口…
并行接口:6800 8080
中断与DMA有何区别?
中断:内核中的叫做异常(内核规定好的比如 复位 系统定时器)
内核之外的叫做中断(这也是我们使用最多的,串口收发,IO口的外部中断,总之就是ST规定的这些中断)
PA0 PB0 PC0 PD0---exit0
当一件事情发生,CPU立刻去响应,处理完成中断事件之后,返回主函数继续执行之前的代码。—提高CPU效率
DMA:也是为了提高CPU的效率
DMA:无需CPU干预,负责数据传输,在数据传输的过程中不需要CPU干预,当数据收发完成的时候,再交给CPU即可
中断:中断的工作从始至终都是需要CPU干预的,中断的管理者NVIC就是属于内核的
循环控制条件关键字goto的使用场景有哪些?
用于跳出循环
改变程序执行顺序
建议大家少用goto,因为破坏了代码原有的结构
sizeof()与strlen()的区别?
sizeof()–关键字,用于计算数组、结构体中最大类型字节数量
strlen()–用于求字符串个数,strlen是一个函数
int buff[100]
char buff[100]
malloc()与calloc函数的区别?
都可以用于开辟空间
malloc–开辟空间需要手动的设置空间大小
calloc–在使用的过程中,不需要手动开辟空间,只需要却动开辟空间的类型,数据个数
编译器的作用
将一种语言(高级语言)转换为另外一种语言(低级语言)
编译的过程:代码–》预编译(预处理)–》编译–》汇编–》链接