# 位带操作问题

位带操作其实就是类似于 51 单片机那种直接通过访问地址来操作的方法

1
2
3
4
5
6
/*比如说在51单片机中  对P1^1口进行操作*/
sbit LED1 = P1^1;
LED1 = 0;
/*如此即可控制了 虽然51单片机中也没有直接看到地址 但这个操作
其实就是位带操作 因为P1^1的地址在#include <reg52.h>这个头
文件中被define成P1^1了*/
image-20210425215649001
reg52.h头文件内部对P1^1的操作 其中T2EX就是对应引脚的地址

# PFout 问题

PXout 和 PXin 两个函数实际上就是求得地址的函数

其中的 'X' 就对应这想要知道的 GPIO 口 例如想知道 PF9 的地址 那么 PFout (9) 就代表了此地址 如果此时想让它等于零 那么直接操作

PFout (9) = 0; 如此即可

img
PFout函数在对应头文件里就经过这么一层一层的运算 最后就可以得到地址了