1.位操作就是单独的对一个比特位进行读或者写操作,这个在51单片机中非常常见,51单片机通过关键字sbit来实现位定义,但是我们在cortex-m芯片中没有关键字这个操作,例如stm32f4xx系列。 2.在f4系列中,有两个地方实现了位带。一个是SRAM区的最低1MB空间,另一个就是外设区的最低1MB空间。同时需要特别注意,如果想要实现对这两个空间的访问,就必须先访问其对应空间的别名区域,也就是这两个位带区都有自己的位带别名区,位带别名区把这两个1MB空间的每一个比特位都膨胀成32位的字,但是膨胀之后的32位的字只是LSB位有效,即最低位有效,其他位都是没有意义的。即通过访问位带别名区的这些字时,就可以达到访问位带区的某个比特位的目的。 由于一般都不会对SRAM区进行单个比特位的读/写操作,所以这里就以片内外设区为例。 对上述公式解释如下: 6.C语言实现:
3.
4.
5.由上面两张图可以得知两个位带区对应的别名位带区地址,那么这个别名位带区地址是怎样得来的呢,即位带区是怎样映射到别名区呢?接下来给大家答案!
bit_word_offset:目标位在位带存储区域中的位置。
byte_offset:包含目标位的位带区域中的字节数。
byte_offset x 32:一个字节有8个比特,一个比特在别名区域中被扩大4个字节。
bit_number:目标位的位置(0-7)。
bit_number x 4:一个比特在别名区域中被扩大4个字节。
bit_word_addr:映射到目标位的别名内存区域中的字的地址。
bit_band_base:别名区域的起始地址。
注意:这里<<5等价于32;<<2等价于4;接下来就可以根据其不同的寄存器地址来对其目标比特位进行读/写操作,最常用的就是通过控制GPIO的输入/输出寄存器来实现控制其模式进而实现LED的亮灭。
本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox网页视频下载器 下载地址: ImovieBox网页视频下载器-最新版本下载
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算