如题:![]() ![]() 如题:请教下,在STM32G4XX系列里面,GPIO挂载在AHB2总线上面,地址在0x4800 0000. 是不是也就意味着,STM32G4XX不能够在像STM32F1XX STM32F4XX 那样对GPIO进行位带操作呢? 还请各位专家前辈,不吝赐教。 |
楼主推测的应该没错,资料里明确显示了外设的位带宽度只有1M,没有到达GPIO的范围。
G4系列属于M4核,它跟其它M4核的F4系列一样也支持BIT-Banding操作。在G4系列的参考手册的2.3章节有明确介绍。
以上是STM32F4参考手册内容。 在F4系列里面,GPIO挂载在AHB1总线,地址在0x4002 0000 按照,crotex 编程指南里面,在1MB 地址之内。 但是G4 的GPIO寄存器地址在 0x4800 0000.不在位带区范围之内。 我怀疑,是我理解上的错误。 按理说,ST不应该把在F1,F4里面比较常用的功能移除。
[color=var(--default-a-next-color)]butterflyspring非常非常
嗯,首先STM32G4系列支持位带操作是没有问题的,手册里也明确出来了。 不过,结合ARM内核手册里约定的位带地址空间和STM32G4系列 GPIO外设所在地址空间来看, 的确没法针对STM32G4系列的GPIO做位带操作。 另外,STM32G4手册里给定的GPIO地址也是没问题的,我刚才也 间接做了确认。