随机题目 可以检查自己的学习成果 常见嵌入式题目汇总
1.sizeof即是关键字也是运算符
2.%取余运算符只能用于整形;A%B——A、B都必须为int类型。
①BSS(Block Started by Symbol):通常是指用来存放程序中未初始化的全局变量和静态变量的一块内存区域。特点是:可读写的,在程序执行之前BSS段会自动清0。所以,未初始的全局变量在程序执行之前已经成0了。
②variable:变量
③data段:存放初值不为0的非const全局变量或静态局部变量
④rodata段:(局部只读变量位于栈区):
⑤text段:代码段,main函数的汇编指令存放在.text段。
4.基本ATPCS规定了在子程序调用时的一些基本规则
①子程序间通过寄存器R0一R3来传递参数,这时,寄存器R0~R3可以记作A1-A4。被调用的子程序在返回前无需恢复寄存器R0~R3的内容。 ②在子程序中,使用寄存器R4~R11来保存局部变量.这时,寄存器 R4 ~ R11可以记作V1 ~ V8。如果在子程序中使用到了寄存器V1~V8中的某些寄存器,子程序进入时必须保存这些寄存器的值,在返回前必须恢复这些寄存器的值;对于子程序中没有用到的寄存器则不必进行这些操作。在Thumb程序中,通常只能使用寄存器R4~R7来保存局部变量。 ③寄存器R12用作过程调用时的临时寄存器(用于保存SP,在函数返回时使用该寄存器出栈), 记作ip。在子程序间的连接代码段中常有这种使用规则。 ④寄存器R13用作数据栈指针,记作sp。在子程序中寄存器R13不能用作其他用途。寄存器sp在进入子程序时的值和退出子程序时的值必须相等。 ⑤寄存器R14称为连接寄存器,记作lr。它用于保存子程序的返回地址。如果在子程序中保存了返回地址,寄存器R14则可以用作其他用途。 ⑥寄存器R15是程序计数器,记作pc。它不能用作其他用途。
5.通用寄存器中,R0-R7是未分组寄存器,R8-R14是分组寄存器
6.I2C总线的输出端口是开漏式
7.C语言中浮点类型数据包括 符号位 指数位 尾数部分
8.进程的三种工作状态分别是 运行态 就绪态 阻塞态
①波特率指信号每秒的变化次数。比特率指每秒可传输的二进制位数。在无调制的情况下,波特率精确等于比特率。采用调相技术时,波特率不等于比特率。
②数字信道传送数字信号的速率称为数据传输速率或比特率。
③传输率就是指每秒传输多少位,传输率也常叫波特率。
④波特率是指线路状态更改的次数。只有每个信号符合所传输数据的一位时,才等于每秒位数。
10.指针数组是指针int* p1[] 数组指针:是数组int(*p1)[]
1.单片机IO口开漏输出和推挽输出有什么区别?
**开漏输出:**开漏输出只能输出低电平,如果要输出高电平必须通过上拉电阻才能实现。就类似于三极管的集电极输出。
**推挽输出:**推挽输出既可以输出低电平,也可以输出高电平,可以直接驱动功耗不大的数字器件。导通损耗小、效率高、既提高电路的负载能力,又提高开关速度。
拓展:STM32的8种GPIO输入输出模式
①浮空输入:浮空输入模式下,I/O端口的电平信号直接进入输入数据寄存器。也就是说,I/O的电平状态是不确定的,完全由外部输入决定;如果在该引脚悬空(在无信号输入)的情况下,读取该端口的电平是不确定的。
②上拉输入:上拉输入模式下,I/O端口的电平信号直接进入输入数据寄存器。但是在I/O端口悬空(在无信号输入)的情况下,输入端的电平可以保持在高电平;并且在I/O端口输入为低电平的时候,输入端的电平也还是低电平。
③下拉输入:下拉输入模式下,I/O端口的电平信号直接进入输入数据寄存器。但是在I/O端口悬空(在无信号输入)的情况下,输入端的电平可以保持在低电平;并且在I/O端口输入为高电平的时候,输入端的电平也还是高电平。
④模拟输入:模拟输入模式下,I/O端口的模拟信号(电压信号,而非电平信号)直接模拟输入到片上外设模块,比如ADC模块等等。
**⑤开漏输出:**开漏输出模式下,通过设置位设置/清除寄存器或者输出数据寄存器的值,途经N-MOS管,最终输出到I/O端口。这里要注意N-MOS管,**当设置输出的值为高电平的时候,N-MOS管处于关闭状态,此时I/O端口的电平就不会由输出的高低电平决定,而是由I/O端口外部的上拉或者下拉决定;当设置输出的值为低电平的时候,N-MOS管处于开启状态,此时I/O端口的电平就是低电平。**同时,I/O端口的电平也可以通过输入电路进行读取;注意,I/O端口的电平不一定是输出的电平。
**⑥开漏复用输出:**输出的高低电平的来源,不是让CPU直接写输出数据寄存器,取而代之利用片上外设模块的复用功能输出来决定的。
**⑦推挽输出:**推挽输出模式下,通过设置位设置/清除寄存器或者输出数据寄存器的值,途经P-MOS管和N-MOS管,最终输出到I/O端口。这里要注意P-MOS管和N-MOS管,当设置输出的值为高电平的时候,P-MOS管处于开启状态,N-MOS管处于关闭状态,此时I/O端口的电平就由P-MOS管决定:高电平;当设置输出的值为低电平的时候,P-MOS管处于关闭状态,N-MOS管处于开启状态,此时I/O端口的电平就由N-MOS管决定:低电平。同时,I/O端口的电平也可以通过输入电路进行读取;注意,此时I/O端口的电平一定是输出的电平。
2.单片机里定时器有什么作用和优势?
①作用:计数,延时,输入捕获,输出比较(输出PWM),产生中断
②优势:不需要CPU参与,精确
3.同步通信和异步通信的区别
同步通信需要保持相同的时钟频率,发送端发送一帧,接收端接收一帧
异步通信不需要知道数据什么时候会到达,不需要保持相同的时钟频率,通常以起始位和结束位来判断
4.什么是中断?
在CPU正常执行程序时,因外部或者内部事件或程序使得CPU暂停工作,CPU去处理中断子程序中的任务,待中断子程序中的任务处理完之后,在继续执行程序
中断处理过程:
①保护现场,将当前位置的PC地址压栈
②跳转到中断服务程序中,执行中断服务函数
③回复现场,将栈顶的值回送给PC
④跳转到被中断的位置开始执行下一个指令
1.简述SPI IIC UART接口的区别和各自收发数据的方法
SPI:全双工,四根线 优点:高速 缺点:没有指定流控制器,没有应答机制确认是否收到数据
MISO:主设备数据输入,从设备数据输出
MOSI:主设备数据输出,从设备数据出入
SCLK:时钟信号,由主设备产生
CS:从设备使能信号,由主设备控制
IIC:半双工,两根线 优点:简单,支持多主控 缺点:速度比SPI慢,数据帧大小限制8位
SDA:数据线
SCL:时钟线
UART:全双工,两根线(不包括GND) 优点:不需要时钟,传输距离远,有检错机制 缺点:需要波特率支持
RX:接收
TX:发送
2.从以下几种无线通信方式中选取一种了解的尽可能详细的描述一下:BLE,WiFi ,NFC,NB-IoT,eMTC
BLE:蓝牙技术,是一种近距离无线通信方式,协议为802.15.4,频段为公共通用2.4GHz ISM频段
WIFI:近距离无线通信技术,正式名称802.11b,工作频率2.4GHz,最高速率可达11Mbps,覆盖范围100m
NFC:短距离无线通信技术,采用双向识别和连接,使用13.56MHz频率
Zigbee:低速短距离无线通信技术,低耗电,低成本,支持节点多,支持拓扑结构,使用2.4GHz频段
3.试描述MQTT、CoAP、HTTP三种协议的区别
MTQQ:基于TCP协议
CoAP:基础UDP协议
HTTP:基于TCP协议
4.试描述TCP建立和断开连接时的三次握手和四次挥手
第一次握手:服务器启动监听,客户端向服务器发送SYN命令,服务器收到后会给客户端发送收到的SYN(x+1)和ACK(y)
第二次握手:服务器进入accept,客户端收到指令后,向服务器发送SYN(x+1)和ACK(y+1)
第三次握手:服务器收到命令,校验成功后建立连接
第一次挥手:客户端向服务器发送请求断开指令(FIN),表示自己想要断开
第二次挥手:服务器收到命令后,给客户端回复(ACK)收到指令里的随机值+1,由于TCP是安全可靠的,现在不会马上断开连接,而是等数据处理完之后,这时客户端关闭发送功能,保留接收功能
第三次挥手:服务器处理完数据之后,服务器向客户端发送请求断开指令(FIN),表示自己要断开了
第四挥手:客户端收到指令后,向服务器发送响应(ACK),表示服务器可以断开
5.一个无序的长度为n的数组,找到最小的值,请用C语言编码实现以下函数
int get_min(int* array, int n) {
}
6.工厂生产摩拜单车包含两道工序,工序A每5min生产一辆摩拜单车,生产完成后送到工序B检测,每1min检测一辆,检测失败的需要返回工序A重新生产;试用多线程(多任务)的机制实现上述的生产工序,实现产能的最大化。
7.用变量a给出以下定义:
一个指向指针的指针,它指向的指针是指向一个整型数 int **a;
一个有10个指针的数组,该指针是指向一个整型数的 int *a[10];
一个指向有10个整型数数组的指针 int (*a)[10];
嵌入式就业指南 零基础开始-备战->题目->技巧