嵌入式 - 单片机 相关题目收录整理(1)

1.单片机IO口开漏输出和推挽输出有什么区别?

开漏输出:开漏输出只能输出低电平,如果要输出高电平必须通过上拉电阻才能实现。就类似于三极管的集电极输出。
推挽输出:推挽输出既可以输出低电平,也可以输出高电平,可以直接驱动功耗不大的数字器件。导通损耗小、效率高、既提高电路的负载能力,又提高开关速度。

2.单片机里定时器有什么作用和优势?

作用:定时、计数;
输入捕获(用作解码或者测量时间间隔);
输出比较(多用于产生pwm波形);
触发中断(对其他模块进行操作);
优势:不需要CPU参与,精确;

3.什么是Nyquist采样定理?如果需要通过512点FFT分析200-10KHz信号频谱,频谱分辨率不低于40Hz,此时采样频率需在什么范围?

频率分辨率可以理解为在使用DFT时,在频率轴上的所能得到的最小频率间隔f0=fs/N=1/NTs=1/T,其中N为采样点数,fs为采样频率,Ts为采样间隔。所以采样频率不低于20480hz.与采样频率的不低于20000hz综合得不低于20480hz

4.已知单片机内置12位精度的ADC,单片机工作电压3.3V,ADC基准电压3V,请计算ADC采样的电压最小分辨率是多少?如果单片机ADC输入口电压为1V,则采样得到的值是多少?

电压最小分辨率为3/4095 V
采样值为1/3*4095

5.同步通信和异步通信有什么区别?UART、SPI和I2C分别属于什么类型的通信方式?

同步通信需要一根时钟线,并且通信双方的时钟频率要严格同步,系统搭建相对较复杂,成本高,但是传输的数据量少,速度快,其中时钟的作用就是判断收发数据的进程,定位当前传输的数据。发一个收一个,收一个发一个,不能有间隙
异步通信可以不要时钟线,系统较为简单,由于缺少定位数据的时钟线,所以必须在传输的数据帧前后加上开始结束等冗余字符,造成传输速度略有降低。异步通信可以任意间隙,接受端随时准备,发送端任意时刻发送 ,需要加停止位和开始位。
UART全称通用异步收发器,无时钟线,属于异步通信
SPI全称串行外设接口,有时钟线,属于同步通信
I2C全称集成电路串行总线,有时钟线,属于同步通信
补:
SPI : 全双工 四根线 MOSI、MISO、SCLK、CS,以CS选择从机;
IIC : 半双工 两根线 SCL、SDA,以地址选择从机;
UART : 全双工 两根线(不包地线)RX、TX;

6.简述通过I2C接口读取设备X的寄存器Y的值的过程

2C只有两根线,分别为数据线(SDA)、时钟线(SCL)
通过数据线和时钟线的状态,可以产生起始信号、结束信号、应答信号、读取数据、接收数据等信号

读取设备X的寄存器Y值过程
主机发送一个起始信号,表示主机开始工作
主机发送一个地址编号(设备X的地址)
挂在I2C总线上的设备X向主机返回一个ack应答信号,建立主机与设备X之间的传输连接
主机收到应答信号后,向设备X发送一个寄存器Y的地址编号
设备X产生一个ack应答信号
主机收到应答后,再次发送一个起始信号
主机发送一个地址编号(设备X的地址)
设备X产生一个ack应答信号
主机收到应答后,发送读命令
设备X产生一个ack应答信号
主机收到应答后,主机读取一字节数据
主机产生一个ack应答信号
主机读取一个CRC校验码
主机产生一个Nack信号
主机产生一个结束信号

简单表述:
1.首先主机发起通信(起始信号),将设备X的地址与寄存器Y写入从机;
2.从机接收信号将命令(读还是写命令)与寄存器Y地址提取出来,
3.从机将寄存器Y地址的数据放入从机I2C输出buffer
4.主机再次发起一次通信,读取从机数据。

7.中断是什么?请简述单片机中断处理的过程

CPU在正常执行程序的过程中,由于内部/外部事件的触发或程序的预先安排引起CPU暂时中断当前正在运行的程序,而转去执行中断服务子程序,待中断服务子程序执行完毕后,CPU继续执行原来的程序,这一过程称为中断;
中断处理的过程:
第一步:保护现场,将当前位置的PC地址压栈;
第二步:跳转到中断服务程序,执行中断服务程序;
第三步:恢复现场,将栈顶的值回送给PC;
第四步:跳转到被中断的位置开始执行下一个指令;

8.相比于正常子函数,中断服务函数有什么特点和需要注意的地方?

1.相比正常的子函数,中断函数服务函数中不能有耗时的操作,最不能在中断服务函数中有延时函数。
2.不能有引起中断睡眠的函数。
3.不能递归调用自身。
4.在中断服务函数中不能出现可重入函数。比如printf。
5.中断服务函数中没有参数以及没有返回值。

9.对于char型变量 a,写两段代码分别将 a的 bit 6置1和置0

a|=(1<<6); a&=~(1<<6);

  • 0
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值