2019寒武纪秋招

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

    推挽输出 推挽输出既可以输出低电平,也可以输出高电平;
    开漏输出 开漏输出只能输出低电平,如果要输出高电平必须通过上拉电阻才能实现; 


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

   作用:计时,输入捕获(解码和测量时间间隔),延时,输出比较(pwm),单脉冲输出,触摸中断;
  优势:不需要cpu参与,精确;


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

3/4096 V,1365


- 同步通信和异步通信有什么区别?UART、SPI和I2C分别属于什么类型的通信方式?
 同步通信需要相同频率的时钟,逐字符发送接收,发一个收一个,收一个发一个,不能有间隙。
异步通信可以任意间隙,接受端随时准备,发送端任意时刻发送,需要加停止位和开始位。
UART 异步通信,全双工,2线,RX TX
I2C 同步通信   半双工  2线  SDA SCL
SPI 同步通信   全双工  3线或四线 MOSI MISO SCLK CS 


- 简述通过I2C接口读取设备X的寄存器Y的值的过程
 发送起始信号--发送设备x地址+读写位0
---读取ACK
---发送寄存器地址Y
--读取ACK
--重复起始信号
--发送设备x地址+读写位1
--读取ACK
--读取数据
--发送NACK
--发送停止信号


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

- 相比于正常子函数,中断服务函数有什么特点和需要注意的地方?
不可以延时,只做事件标记,快进快出,不要调用类似printf();函数


对于char型变量 a,写两段代码分别将 a的 bit 6置1和置0
 a|=(1<<6)
a&=~(1<<6)

 请写一段代码,可以将输入为”0.0.0.0”—“255.255.255.255”的字符串转换为int型整数数组。

输入:”255.255.255.255”

输出:255 255 255 255 (数组)
 int len=strlen(str);
int res[4];
memset(res,0,sizeof(int));
int num=0;
int k=0;
for(int i=0;i

你可能感兴趣的:(2019寒武纪秋招)