打印

特新的新手求助,寄存器读取数据的方式

[复制链接]
1600|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
XBJD|  楼主 | 2011-3-17 16:55 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
如题,举例来说:

  /* Send SectorAddr high nibble address byte */
  SPI_FLASH_SendByte((SectorAddr & 0xFF0000) >> 16);
  /* Send SectorAddr medium nibble address byte */
  SPI_FLASH_SendByte((SectorAddr & 0xFF00) >> 8);
  /* Send SectorAddr low nibble address byte */
  SPI_FLASH_SendByte(SectorAddr & 0xFF);

从寄存器读取数据时为什么先与1与运算,再读取其值呢?比如取最高的字节,为什么不直接右移16位,而要先和0xFF0000与一下,这样做的目的是什么,有什么好处吗?希望高手指点一下,谢谢。

相关帖子

沙发
ayb_ice| | 2011-3-17 17:00 | 只看该作者
确实没有必要,但也不会出错

使用特权

评论回复
板凳
XBJD|  楼主 | 2011-3-18 10:21 | 只看该作者
我看到很多的程序都是这么写的,这样写的原因甚为不解,所以才忍不住问一下

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

3

帖子

1

粉丝