2.1.2.5-C语言#include-sfr-sbit关键字用法
include关键字用法
1 |
使用尖括号< >和双引号" "的区别在于头文件的搜索路径不同:
使用尖括号< >,编译器会到系统路径下查找头文件;
使用双引号" ",编译器首先在当前目录下查找头文件,如果没有找到,再到系统路径下查找。
系统路径:在开发软件的INC文件夹中
tip:双引号" “比尖括号< >功能更加强大,可以导入工程中的其他函数,但是一般来讲我们会使用”"引用自己的函数,而用<>引用官方库函数,提升代码可读性。
sfr关键字用法(特殊功能寄存器sfr)
写程序的过程就是对特殊功能寄存器赋值,sfr 定义特殊功能寄存器中的字节。类似于C语言中的宏定义,对选定字节地址进行某特殊功能的命名。
sfr将单片机所有的字节寄存器的字节地址在头文件中定义了,一个地址表示了多个位,这将Keil与单片机的寄存器关联起来。
这一般是单片机厂商就已经编写好的,他们在.h中将硬件层的寄存器地址与寄存器缩写关联起来,便于进一步开发。
格式为:
1 | sfr 功能命名 = 地址(位地址首位) |
sbit关键字用法
sbit 用于特殊功能寄存器中可位寻址的位地址。类似于C语言中的宏定义,对选定位地址进行某特殊功能的命名。
一般也由单片机厂商在.h文件中编写好。
格式为:
1 | sbit 功能命名 = 位地址 |
sfr针对字节,sbit针对位,以下是官方.h文件节选,用于体会两者用法
1 | //内核特殊功能寄存器 // 复位值 描述 |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 MagicConch's Blog!
评论
GiscusLivere