STM32中GPIOD->BSRR = addr|(0x0000ffff<<16); <<16是什么意思
展开全部
就是将addr的高31-16位全部置为1。换句话说,其实就等同于GPIOD->BSRR = addr|0xffff0000;
因为0x0000ffff << 16 就是0xffff0000
因为0x0000ffff << 16 就是0xffff0000
追问
GPIOD->BSRR = addr|0xffff0000;
比如我这个地址addr输入为1,就是GPIOD->BSRR = 1|0xffff0000 结果是
GPIOD->BSRR = 0xffff0001;代表PD0输出为1,PD1~PD15输出为0???
比如我这个地址addr输入为F,就是GPIOD->BSRR = F|0xffff0000 结果是
GPIOD->BSRR = 0xffff000F;代表PD0~PD3输出为1,PD4~PD15输出为0???
麻烦你,看下我这样分析是不是对的。谢谢
追答
对。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询