- 1、本文档共5页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
位带操作学习记
STM32?BIT_BAND?位段位带别名区使用入门1.?什么是位段、位带别名区?2.?它有什么好处??答1:?是这样的,记得MCS51吗??MCS51就是有位操作,以一位(BIT)为数据对象的操作,??????MCS51可以简单的将P1口的第2位独立操作:?P1.2=0;P1.2=1?;?就是这样把P1口的第三个脚(BIT2)置0置。??????而现在STM32的位段、位带别名区就为了实现这样的功能。????????????对象可以是SRAM,I/O外设空间。实现对这些地方的某一位的操作。???????它是这样的。在寻址空间(32位地址是?4GB?)另一地方,取个别名区空间,从这地址开始处,每一个字(32BIT)??????就对应SRAM或I/O的一位。????????????这样呢,1MB?SRAM就?可以有32MB的对应别名区空间,就是1位膨胀到32位(1BIT?变为1个字)??????我们对这个别名区空间开始的某一字操作,置0或置1,就等于它映射的SRAM或I/O相应的某地址的某一位的操作。??????答2:??简单来说,可以把代码缩小,?速度更快,效率更高,更安全。??????一般操作要6条指令,而使用?位带别名区只要4条指令。?????????一般操作是??读-改-写??的方式,?而位带别名区是?写?操作。防止中断对读-改-写??的方式的影响。/??支持了位带操作(bit_band),有两个区中实现了位带。其中一个是SRAM?区的最低1MB?范围,第二个则是片内外设//??区的最低1MB?范围。这两个区中的地址除了可以像普通的RAM?一样使用外,它们还都有自//??己的“位带别名区”,位带别名区把每个比特膨胀成一个32?位的字////??每个比特膨胀成一个32?位的字,就是把??1M??扩展为?32M?,////??于是;RAM地址?0X200000000(一个字节)扩展到8个32?位的字,它们是://???0X220000000?,0X220000004,0X220000008,0,0X220000010,0X220000014,?0X220000018,0//?支持位带操作的两个内存区的范围是://?0x2000_0000‐0x200F_FFFF(SRAM?区中的//?0x4000_0000‐0x400F_FFFF(片上外设区中的最低1MB)/*对SRAM?位带区的某个比特,记它所在字节地址为A,位序号在别名区的地址为:AliasAddr=?0+((A‐0*8+n)*4?=0?(A‐0*32?+?n*4对于片上外设位带区的某个比特,记它所在字节的地址为A,位序号为n(0=n=7),则该比特在别名区的地址为:AliasAddr=?0((A‐0*8+n)*4?=0?(A‐0*32?+?n*4上式中,“*4”表示一个字为4?个字节,“*8”表示一个字节中有8?个比特。*///?把“位带地址+位序号”转换别名地址宏#define?BITBAND(addr,?bitnum)?((addr??0xF0000000)+0x2000000+((addr?0xFFFFF)5)+(bitnum2))//把该地址转换成一个指针#define?MEM_ADDR(addr)??*((volatile?unsigned?long??*)(addr))//?MEM_ADDR(BITBAND(?(u32)CRCValue,1))?=?0x1;例如点亮LED//?使用STM32库????GPIO_ResetBits(GPIOC,?GPIO_Pin_4);?//关LED5???GPIO_SetBits(GPIOC,?GPIO_Pin_7);???//开LED2//?一般读操作????STM32_Gpioc_Regs-bsrr.bit.BR4?=1;//?1:清除对应的ODRy位为0????STM32_Gpioc_Regs-bsrr.bit.BS7?=1;//?1:设置对应的ODRy位为1//如果使用?位带别名区操作??STM32_BB_Gpioc_Regs-BSRR.BR[4]?=1;//?1:清除对应的ODRy位为0??STM32_BB_Gpioc_Regs-BSRR.BS[7]?=1;//?1:设置对应的ODRy位为1代码比STM32库?高效?十倍?!对内存变量的位操作。?复制内容到剪贴板?代码
您可能关注的文档
- 中学控烟考评惩制度.doc
- 中餐厅奖罚制.doc
- 中药外敷涌泉治病.doc
- 临沧市 创业划书.doc
- 为孩子购买保的几点建议.doc
- 中药药理学考题.doc
- 为官不作为对检查材料.doc
- 为三不干部治.doc
- 举案齐眉释义典故(中英).doc
- 12.1质谱类型及构成.ppt
- 2026高考数学一轮复习课件 人教A版 第六章 §6.7 子数列问题.pptx
- 2026高考数学一轮复习课件 人教A版 第八章 §8.1 直线的方程.pptx
- 2026高考数学一轮复习课件 人教A版 第四章 §4.8 解三角形.pptx
- 2026高考数学一轮复习课件 人教A版 第一章 必刷小题1 集合、常用逻辑用语、不等式.pptx
- 2026高考数学一轮复习课件 人教A版 第四章 §4.2 同角三角函数基本关系式及诱导公式.pptx
- 2026高考数学一轮复习课件 人教A版 第二章 §2.6 二次函数与幂函数.pptx
- 2026高考数学一轮复习课件 人教A版 第二章 必刷小题3 基本初等函数.pptx
- 2026高考数学一轮复习课件 人教A版 第十章 必刷大题20 概率与统计.pptx
- 2026高考数学一轮复习课件 人教A版 第六章 §6.4 数列中的构造问题.pptx
- 2026高考数学一轮复习课件 人教A版 第二章 §2.7 指数运算与对数运算.pptx
文档评论(0)