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

[复制链接]
 楼主| 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

粉丝
快速回复 在线客服 返回列表 返回顶部

0

主题

3

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部