野火stm32指南针随记1

发布时间:2024年01月20日

关于指针&置一 清零(不改变其他原有值)&移位

指针也就是内存地址,指针变量是用来存放内存地址的变量。

*(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

文章来源:https://blog.csdn.net/m0_67964942/article/details/135709020
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。