当前位置: 首页 > news >正文

c 网站开发教程上海做推广的引流公司

c 网站开发教程,上海做推广的引流公司,网站建设pdf微盘,房山网站建设优化seo1.GPIO为什么需要宏定义地址 在 STM32 这样的微控制器中,硬件寄存器的地址是固定的并且特定于每个外设(比如 GPIOA、GPIOB 等)。为了方便代码访问这些硬件寄存器,我们通常会使用宏定义来指定每个外设的基地址。这样做有几个理由&a…

1.GPIO为什么需要宏定义地址

在 STM32 这样的微控制器中,硬件寄存器的地址是固定的并且特定于每个外设(比如 GPIOA、GPIOB 等)。为了方便代码访问这些硬件寄存器,我们通常会使用宏定义来指定每个外设的基地址。这样做有几个理由:

  • 硬件地址是固定的: 微控制器的每个外设(比如 GPIOA、GPIOB 等)都有一个固定的起始地址(基地址),这些地址在芯片的硬件手册中明确给出。例如,GPIOA 可能有一个固定的基地址,比如 0x40010800

  • 代码便于移植: 使用宏定义可以让代码更加灵活。例如,如果你将代码移植到不同型号的 STM32 设备上,不同型号的设备可能会有不同的外设基地址。通过宏定义,可以方便地修改这些基地址,而不需要修改代码中每个寄存器访问的地方。

  • 简化代码: 使用宏定义可以简化代码的书写和阅读。我们直接使用 GPIOA_BASE 而不是手动输入每个寄存器的地址。

因此,GPIOA 需要宏定义一个地址是因为它是外设的基地址,代码通过这个基地址来访问 GPIOA 外设的寄存器。

你也可以不定义,那就需要输入地址再访问了,比如:

2. 为什么不需要为 BSRR定义宏地址

从下图可以看到,我所查找的的BSRR只是一个宏定义,找不到他的地址值了,为什么呢?

GPIOA->BSRR的访问并不需要为 BSRR寄存器单独定义一个地址,因为:已经包含了所有寄存器字段的偏移量定义。例如,BSRR寄存器的地址会是 GPIOA_BASE + 0x10(这是在硬件手册中定义的)。

  • 结构体的每个字段(例如 ODR)会自动偏移至相应的地址,而不需要为每个字段单独定义一个宏。

另外,我们会在代码中添加GPIO_TypeDef 结构体,GPIOA 本身已经是指向 GPIO_TypeDef 结构体的指针,GPIOA->BSRR会自动根据结构体的定义来访问 BSRR寄存器,比如:

三、为什么GPIOA->BSRR=1不会改变他的地址值

其实有了上面的哪一点,问题迎刃而解了,BSRR就是地址了,而GPIOA->BSRR是取BSRR的值而不是地址,所以我们在修改的是BSRR的值而不是地址

http://www.yidumall.com/news/100384.html

相关文章:

  • 用易语言做刷网站注册软件优化大师怎么下载
  • vps 同时翻墙和做网站打开百度一下
  • 合肥外贸网站建设公司排名友情链接买卖代理
  • 网页制作网站整合与测试性能优化大师
  • php后台网站开发教程seo关键词搜索和优化
  • 网站效果网络推广是干什么的
  • 网站规划的步骤南京seo关键词排名
  • 网络科技公司是做什么的站内优化包括哪些
  • 杭州建站程序nba最新排名榜
  • dedecms做的系统_网站主页是哪一个文件学校网站模板
  • 嵌入式培训班多少钱广东百度seo
  • 做房产网站赚钱吗杭州seo百度关键词排名推广
  • 做实体店打折信息网站域名免费查询
  • 做弹弓教程网站专业的网络推广
  • 网站做关键词首页网络培训心得体会5篇
  • 如何在asp网站淘宝seo优化排名
  • 电子商务网站建设的风险分析网络广告营销的概念
  • 网站建设只有20%的利润网络销售公司经营范围
  • 进出口网站贸易平台有哪些今日头条十大新闻最新
  • 做动画网站去哪采集自动推广引流app
  • 新手做网站的注意事项旺道seo软件技术
  • 做网站是不是要拍法人的照片广告软文外链平台
  • 阿里巴巴网站威海哪里做?竞价排名推广
  • 变化型网站58同城网站推广
  • 适合网络推广的项目seo排名赚钱
  • 注册域名之后怎么使用杭州seo营销
  • 北京矿建建设集团有限公司网站东莞发布最新通告
  • zblog蓝色简洁企业网站模板企业建站 平台
  • 最新的网站开发技术品牌策划书
  • 南京玄武网站建设建立网站步骤