定义STM32 GPIO的常量

问题描述 投票:0回答:1

我正在开发STM32F103C8T6的程序,但找不到GPIOA_OTYPER常量。我想将PA0至PA7设置为8位并行输出的推挽。 当我用谷歌搜索常量时,我发现几个网站以不同的方式做这件事:

#define RCC_AHB1ENR (*((volatile unsigned int*)0x40023830))
#define GPIOA_MODER (*((volatile unsigned int*)0x40020000))
#define GPIOA_BSRR  (*((volatile unsigned int*)0x40020018))
#define RCC_AHB1ENR RCC_BASE + 0x30
#define GPIOA_MODER GPIOA_BASE + 0x00
#define GPIOA_BSRR  GPIOA_BASE + 0x18 

我们是否在每个项目中都在重新发明轮子?
难道不应该有一个头文件来一次性设置它们吗?
我没找到,如果有的话哪里可以找到?

stm32 gpio stm32cubeide
1个回答
0
投票

如果你自己定义这样的事情,你肯定是在重新发明轮子。您正在寻找的是CMSIS

这为所有 ARM Cortex-M CPU 提供了标准定义。供应商还为其产品添加自己的定义,例如ST Micro 有自己的定义,涵盖其 STM32 MCU 系列中包含的外设。

如果您使用 STM32CubeIDE 创建了项目,那么所有这些内容都将位于项目的

Drivers/CMSIS
目录中。

© www.soinside.com 2019 - 2024. All rights reserved.