《嵌入式技术入门与实战(基于STM32)》 课件 3.4-通用功能IO模块-位操作.pptx

《嵌入式技术入门与实战(基于STM32)》 课件 3.4-通用功能IO模块-位操作.pptx

  1. 1、本文档共22页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

《嵌入式技术与应用》谢微STM32的GPIO模块-位操作

第3章STM32I/O应用实战《嵌入式技术入门与实战(基于STM32)》

任务3STM32I/O的位带操作实现01STM32存储器的映射02位带操作原理03位带操作的应用分析

1、STM32存储器的映射

STM32存储器的映射4GB地址空间内可寻址的存储空间分为8个主要块,每个块为512MB。

嵌入式SRAM包括:192KB系统SRAM、4KB备份SRAM系统SRAM:起始地址是0x20000000,分为三块:映射在地址0x20000000的112KB和16KB块,供所有AHB主控总线访问。

外设存储器映射外设存储器映射起始地址是0x40000000通过总线AHB、APB连接外设

2、位带操作原理

GPIO输出数据寄存器写一位值控制其对应的引脚状态,普通的操作过程中需要3步骤:1.读:读取包含该位的字节数据2.修改:设置该位为0或1、同时屏蔽其他位3.写:将包含该位的字节数据写入9位带操作的起因

CM4中,有两个区中实现了位带。其中一个是SRAM区的最低1MB范围,第二个则是片内外设区的最低1MB范围。SRAM区的最低1MB范围:0x2000_0000-0x200F_FFFF片内外设区的最低1MB范围:0x4000_0000-0x400F_FFFF10位带操作的概念概念:使用普通的加载/存储指令来对单一的比特进行读写。

位带别名区把位带区的每个比特膨胀成一个32位的字。对别名区直接进行读写,实现对位带区每一位的状态的改变11位带操作的实现-位带别名区

12映射关系0~0x200FFFFF0~0x23FFFFFF别名地址(32MB)SRAM数据区(1MB)0~0x400FFFFF0~0x43FFFFFF别名地址(32MB)外设区(1MB)别名地址=位带基址+字节偏移量×32+位号×4

地址0位号2的位对应的别名区地址是多少?位段基址=0节偏移量=0-0=0x300别名地址=0+0x300×32+2×4=0x2200600813地址映射示例别名地址=位带基址+字节偏移量×32+位号×4一个字节8位共占用32个地址保证每个别名地址是4字节地址对齐其他3个地址不用

1、位带操作对硬件I/O密集型的底层程序提供了很大方便。2、位带操作可用来化简跳转的判断,使代码更整洁。3、在多任务中用于实现共享资源在任务间的“互锁”访问。14位带操作的优越性

3、位带操作的应用分析

基于LED跑马灯的工程,修改代码,采用位带操作实现对LED灯的亮灭的控制。16位带操作的应用任务芯片:STM32F407ZGT6实验板:正点原子探索开发套件实验板已实现了硬件电路,无需重新搭建。

硬件设计STM32芯片作为输出的引脚:PF9、PF10LED连接硬件电路

软件设计地址映射的实现代码别名地址=位带基址+字节偏移量×32+位号×4

位带操作实现LED灯亮灭软件设计

思考与练习◎位带别名区有什么作用?◎别名区和位带区的映射关系是什么?实操练习:基于位带操作,实现蜂鸣器的控制

21蜂鸣器学习参考NPN三极管(S8050)来驱动蜂鸣器;R61主要用于防止蜂鸣器的误发声。PF.8输出高电平,蜂鸣器将发声;PF.8输出低电平,蜂鸣器停止发声。

单击此处添加副标题内容谢谢聆听22

您可能关注的文档

文档评论(0)

lai + 关注
实名认证
内容提供者

精品资料

版权声明书
用户编号:7040145050000060

1亿VIP精品文档

相关文档