[STM32F1] 关于stm单片机的位绑定(bit-banding)的理解和困惑求解

[复制链接]
1508|2
 楼主| liuchang890811 发表于 2015-8-12 09:14 | 显示全部楼层 |阅读模式
bit_word_addr = bit_band_base + (byte_offset x 32) + (bit_number × 4)  
下面是小弟对位绑定的理解:
所谓的位绑定,只是将在位带区中的1个bit膨胀成别名区的32个bit
1>所以在位带区中相差1个bit,正好在别名区中相差4个Byte,正好是32个bit
2>所以在位带区中相差1个Byte,正好在别名区中相差32个Byte,正好是32Byte=8*32bit
按照小弟的理解:也就是位带区中的1个bit对应别名区的32个bit
例如:0x2000 0000.0 等价于 0x2200 0000.0
        0x2000 0000.1 等价于 0x2200 0004.0
        0x2000 0000.2 等价于0x2200 0008.0


问题1:小弟上面的理解是对的吗?恳请大神指教
问题2:为什么要求这里的  0<=bit_number<=7 ???
bit_number不是应该在0~31之间吗???恳请大神指教~


amanda_s 发表于 2015-8-13 14:40 | 显示全部楼层
1.你的理解是对的。
2.在这个公式中,
  byte_offset :包含目标比特位的字节在位带区的偏移值(字节数)
   bit_number : 目标比特位在字节中的位置(0~7)
   bit_number表示的是目标比特位在字节中的位置,当然只会是0~7
   如果将上面公式写成这样,可能更好理解:
  bit_word_addr = bit_band_base + ((byte_offset x 8) + bit_number )x4
 楼主| liuchang890811 发表于 2015-8-13 17:17 | 显示全部楼层
感谢大神指导~~~
您需要登录后才可以回帖 登录 | 注册

本版积分规则

34

主题

87

帖子

0

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