STM32中GPIOD->BSRR = addr|(0x0000ffff<<16); <<16是什么意思

 我来答
wds315
2012-08-02 · TA获得超过186个赞
知道小有建树答主
回答量:142
采纳率:50%
帮助的人:48.7万
展开全部
就是将addr的高31-16位全部置为1。换句话说,其实就等同于GPIOD->BSRR = addr|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???

麻烦你,看下我这样分析是不是对的。谢谢
追答
对。
ATF144X
2012-08-02 · TA获得超过1.2万个赞
知道大有可为答主
回答量:5344
采纳率:77%
帮助的人:4611万
展开全部
左移16位,比如把0x0000FFFF变成0xFFFF0000.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式