0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

STM32G4系列到底支不支持位带操作

茶话MCU 来源:茶话MCU 作者:茶话MCU 2024-07-29 09:45 次阅读

印象中不止一次有人询问STM32G4系列到底支不支持位带操作。

其实,从STM32G4系列的参考手册可以看到,该系列芯片是确定支持位带操作的,下面为参考手册中的相关描述截图。

b243e832-4cc0-11ef-b8af-92fbcf53809c.png

不过,在STM32G4系列参考手册上关于Bitbanding的描述基本就上面这些了。这个位带操作是否被支持终究跟内核有关,STM32G4系列是Cortex -M4核,相关内核手册也有关于Bit banding的描述。见下图,位带区和位带别名区的地址安排及映射关系有清晰的定义。

b260b00c-4cc0-11ef-b8af-92fbcf53809c.png

显然,结合STM32参考手册及ARM Cortex-M4内核手册描述,STM32G4系列肯定是支持位带操作的。

可是,有人在试图利用位带操作对STM32G4系列的GPIO进行位操作时,根本成功不了。不知是硬件不支持还是自己的代码哪里有问题。

我们再结合上图看看,不难发现,只有落在0x20000000~0x200fffff的RAM才支持位带操作。对于外设寄存器来讲,只有落在0x40000000~0x400ffff空间的寄存器才支持位带操作。如果我们试图进行位操作的GPIO寄存器不落在这些区域自然没法做位带操作。

通过查看STM32G4参考手册,我们可以发现该系列的GPIO的各种寄存器的地址空间落在0x48000000~0x48001bff区域,根本就没落在位带区,也没落在位带别名区。

b29fd764-4cc0-11ef-b8af-92fbcf53809c.png

既然这样,我们没法针对STM32G4系列的GPIO寄存器使用位带操作。

那么,在STM32G4系列里,有没有其他外设可以支持位带操作呢?即相应外设寄存器地址空间位于0x40000000~0x400ffff区域。其实,也是有的。比方片内的部分TIMER外设,见下图。是否还有其它外设请细看手册确认。

b2bb7d66-4cc0-11ef-b8af-92fbcf53809c.png

当然,位于0x20000000~0x200fffff区间的RAM也支持位带操作。

下面我基于位带操作对TIM2->CR1寄存器的CEN位,即该寄存器的bit0,和地址为0x20000800的RAM单元的bit2进行写1、写0的操作。

我基于STM32G473及HAL库创建工程,组织代码。

b2cee96e-4cc0-11ef-b8af-92fbcf53809c.png

TIM2_BASE在库中已经定义,这里就没有重复定义了。稍加调试后,我们可以基于位带操作对TIM2->CR1的CEN位置位或清零,让计数器时而计数时而暂停。我先将x20000800的RAM单元初始化为0xff,然后周期性修改为bit2,可以看到其值在0xff和0xfb两者间切换。下图为测试验证结果。

b2ee6262-4cc0-11ef-b8af-92fbcf53809c.png

好,关于STM32G4位带操作的话题就聊到这里,上面主要是做些确认和解释,兼做提醒,免得走弯路浪费精力和时间。这玩意用不用,看个人喜好,其实也并非所有Cortex-M核都支持位带操作。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 寄存器
    +关注

    关注

    31

    文章

    5336

    浏览量

    120224
  • STM32
    +关注

    关注

    2270

    文章

    10895

    浏览量

    355715
  • GPIO
    +关注

    关注

    16

    文章

    1204

    浏览量

    52051

原文标题:STM32G4系列是否支持位带操作

文章出处:【微信号:stmcu832,微信公众号:茶话MCU】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    对于STM32G4系列的MCU,其GPIO的操作是否还支持带操作

    STM32G4的memory map。GPIO是挂在AHB2总线上的。 但是手册里面没有明确找到,其别名区的起始地址。
    发表于 03-21 07:34

    带操作的相关资料推荐

    注意:本文中关于STM32带操作原理只适用于Cortex-M3和Cortex-M4(F)内核处理器,Cortex-M系列的其他内核处理器
    发表于 02-07 09:24

    怎样去使用stm32带操作

    怎样去使用stm32带操作呢?stm32支持带操作
    发表于 02-25 07:14

    为什么ch32vxx会不支持stm32带操作

    为什么ch32vxx会不支持stm32带操作呢?怎样去解决ch32vxx不支持stm32
    发表于 02-28 07:18

    CH573到底不支持mesh组网?

    网络内的数据?我把配网以后的设备flash读出来然后新设备首次上电写入flash中虽然显示了配网过了,但是发送的数据别的设备都收不到。另外我想说573到底不支持mesh组网,对外宣称组网,遇到简单
    发表于 08-15 07:59

    STM32G431不支持这种双bank操作模式吗?

    bank。此外,“FLASH_OPTR_DBANK”未在 HAL 中定义,这表明它不是一个选项。这是否意味着这个特定的 G4 系列不支持这种操作模式?
    发表于 12-06 06:43

    难道STM32G4芯片的主频才到80MHz?

    由于死活找不出软件或硬件方面的原因,几近内心崩溃。甚至不直觉地开始怀疑该芯片是否真的支持170MHz的主频。所以他的问题简单直接,STM32G4到底
    的头像 发表于 07-05 10:41 8756次阅读
    难道<b class='flag-5'>STM32G4</b>芯片的主频才到80MHz?

    快速理解STM32带操作原理

    Bit-banding简称带,有人也叫段。支持带操作后,可以使用普通的加载/存储指令来对单一的比特进行读写。很多朋友是从学习51单片
    的头像 发表于 09-03 15:40 4722次阅读
    快速理解<b class='flag-5'>STM32</b><b class='flag-5'>位</b><b class='flag-5'>带操作</b>原理

    openharmony不支持安卓吗

    前面议论纷纷的鸿蒙是安卓套壳时代话题结束了,现在,openharmony 不支持安卓系统的话题又出现了?那么,openharmony 到底不支持
    的头像 发表于 06-23 09:43 2088次阅读

    STM32学习笔记:带操作(Bit_band Operations)

    注意:本文中关于STM32带操作原理只适用于Cortex-M3和Cortex-M4(F)内核处理器,Cortex-M系列的其他内核处理器
    发表于 12-04 12:36 0次下载
    <b class='flag-5'>STM32</b>学习笔记:<b class='flag-5'>位</b><b class='flag-5'>带操作</b>(Bit_band Operations)

    初识“带操作

    目录初识“带操作”什么是“带操作”?STM32的“带操
    发表于 01-12 17:18 0次下载
    初识“<b class='flag-5'>位</b><b class='flag-5'>带操作</b>”

    STM32G4 系列寿命估算

    STM32G4 系列寿命估算
    发表于 11-21 08:11 2次下载
    <b class='flag-5'>STM32G4</b> <b class='flag-5'>系列</b>寿命估算

    AN5306_OPAMP在STM32G4系列中的应用

    AN5306_OPAMP在STM32G4系列中的应用
    发表于 11-21 08:11 4次下载
    AN5306_OPAMP在<b class='flag-5'>STM32G4</b><b class='flag-5'>系列</b>中的应用

    AN5310_使用STM32F3系列STM32G4系列设备的模拟特性指南

    AN5310_使用STM32F3系列STM32G4系列设备的模拟特性指南
    发表于 11-21 17:06 2次下载
    AN5310_使用<b class='flag-5'>STM32</b>F3<b class='flag-5'>系列</b>与<b class='flag-5'>STM32G4</b><b class='flag-5'>系列</b>设备的模拟特性指南

    STM32G4系列安全手册

    STM32G4系列安全手册
    发表于 11-22 08:21 3次下载
    <b class='flag-5'>STM32G4</b><b class='flag-5'>系列</b>安全手册