STM32的位段、位带别名区

STM32的位段、位带别名区

ID:45099533

大小:47.00 KB

页数:3页

时间:2019-11-09

STM32的位段、位带别名区_第1页
STM32的位段、位带别名区_第2页
STM32的位段、位带别名区_第3页
资源描述:

《STM32的位段、位带别名区》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、STM32的BitBandingBitBanding功能是相对于以往能够进行bit操作的单片机而言的。通过BitBanding功能可以像51单片机的bit操作一样。MCS51可以简单的将P1口的第2位独立操作: P1.2=0;P1.2=1 ; 就是这样把P1口的第三个脚(BIT2)置0或置1了。而现在STM32的位段、位带别名区就为了实现这样的功能。只不过他是为需要操作的地址(1字节)的每一个位(共8位)起个别名,分别对应别名区的一个字(word)。也就是别名区的大小是BitBand区的32倍。这样,对32MB的别名区地址的操作,就是对相应BitBand区的位的操作。注意:别名

2、字的位[31:1]在bit-band位上不起作用。写入0x01与写入0xFF的效果相同。写入0x00与写入0x0E的效果相同。如图是跟BitBanding有关系的存储器结构: STM32有两个BitBand区域,分别是:0x20000000——0x20100000:该地址是STM32的SRAM低1MB的地址区域;0x40000000——0x40100000:该地址是STM32的Peripherals低1MB的地址区域; 另外,STM32还有两个对应的BitBand区域的别名区,分别是:0x22000000——0x23FFFFFF:共32MB的空间,对应相应1MB的每一个位;0x

3、42000000——0x43FFFFFF:共32MB的空间,对应相应1MB的每一个位; 接下来的问题是如何确定BitBand区字节的位所对应的那个别名区的字(word)。BitBand区和别名区是一一对应的,具体的公式为:bit_word_addr=bit_band_base+(byte_offset×32)+(bit_number×4);bit_band_base:32MB别名区首地址;byte_offset:1MB位段区偏移量,即为bit-band区中包含目标位的字节的编号;bit_number:位段中目标位的位位置(0-7); 注意:别名字的位[31:1]在bit-ban

4、d位上不起作用。写入0x01与写入0xFF的效果相同。写入0x00与写入0x0E的效果相同。 举个例子(通过别名区访问地址):1、想操作SRAM中BitBand区地址为0x20000018字节的第2位计算别名区对应子地址:0x22000000+(18*32)+(2*4)=0x22000248所以,对0x22000248地址的操作,就是对0x20000018字节的第2位进行操作; 2、想操作Peripherals中BitBand区地址为0x40000021字节的第7位(可能是一个功能寄存器);计算别名区对应子地址:0x42000000+(21*32)+(7*4)=0x420002

5、BC所以,对0x420002BC的操作,就是对0x40000021字节的第7位进行操作;

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。