关于指针&置一 清零(不改变其他原有值)&移位
指针也就是内存地址,指针变量是用来存放内存地址的变量。
*(unsigned int *)0X40010C0C &=~(1<<5)
1、unsigned int * 强制转换为无符号整型指针
2、*(unsigned int *) 内容 放到指针对应地址
*(unsigned int *)0X40010C0C 告诉编译器 这是个地址 指针 再进行指针操作
3、置位 |= 清零&=~
若原来为1000
将最低位置1 将最高位清零
1000 | 0001=1001 1000 &0111=0000 即1000&(0001)
4、移位 (1<<5)代表1左移5位
即 *(unsigned int *)0X40010C0C &=~(1<<5) 代表 将0X40010C00地址对应第五位清零 在指南针中即PB5输出为0