跑马灯寄存器版本代码的主函数内容

2019-07-20 22:16发布

while循环里的内容分别给PD2和PA8高低电平

上半部分设置高电平我懂了
     GPIOD->ODR|=1<<2;
        GPIOA->ODR|=1<<8;
        delay_ms(500);
下半部分是低电平
GPIOD->ODR=~(1<<2);
        GPIOA->ODR=~(1<<8);
        delay_ms(500);
我想问一下设置高电平的时候加了或运算,为了让一个位为1,其它位不变

为什么低电平不加与运算呢,让一个位为0,其它位不变啊
是我没理解透彻吗
求大佬指教


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
2条回答
正点原子
1楼-- · 2019-07-21 00:47
因为这样也可以达到清0特定位的目的,但是,会影响其他位。你这个代码只能说特定条件下,可以使用。
plue
2楼-- · 2019-07-21 01:49
正规的代码是加个&,比如GPIOD->ODR&=~(1<<2);

一周热门 更多>