- 单片机I/O口开漏输出和推挽输出有什么区别?
开漏输出:智能输出低电平,如果要输出高电平,必须通过接上拉电阻才能实现。
推挽输出:既可输出低电平,也可输出高电平,可以直接驱动功耗不大的数字器件,驱动能力较强。
-
中断是什么?简述中断处理过程。
中断即打断当前正在做的事情,转而去执行其他时间。
过程:
- CPU 每执行一条执行之后都会确认中断控制器是否发送了请求,如果接收到处理中断请求,则CPU相应。
- CPU 保护当前程序的现场,将断点处的代码段寄存器压入栈,转入中断服务程序执行,在该过程中,若有优先级更高中断,则会执行优先级更高级中断。
- 中断处理完毕后,堆栈寄存器内容弹栈,恢复进程。
-
预处理功能
①宏扩展; ②文件包含; ③条件编译
-
static 类型的变量默认的初始化值是 0
- register 修饰寄存器变量,auto 定义函数中的变量为局部变量
- char 是有符号型好似是无符号类型,取决于具体实现
arm-linux-gcc 规定 char 为 unsigned char
vc、x86 的 gcc 规定 char 为 signed char
缺省情况下,编译器默认数据为 signed 类型,char 型除外
- IIC 的输出端口是开漏式
- Linux 进程中,使用虚拟内存转换使得应用的运行起始地址是一样的。
- 程序运行时地址和加载地址是由程序链接时决定的,所以不一定相同。
- 结构体是同一个名字引用的相关变量的集合,联合体是一种同一存储区域由不同类型变量共享的数据类型。
- 数据在内存中以二进制形式存放,数值以补码形式存放,字符型对应ASCII码放置存储单元。