gpt4 book ai didi

c - STM32F103 GPIO 端口

转载 作者:行者123 更新时间:2023-12-05 08:31:15 25 4
gpt4 key购买 nike

我有一个STM32F103C8 MCU,我想在没有Cube MX的情况下控制GPIO寄存器。 MCU 有一个嵌入式 LED,我想控制它。我目前正在使用 CubeMX 和 IAR 软件,我使用以下代码将引脚作为输出(在 CubeMX 中):

HAL_GPIO_TogglePin(Ld2_GPIO_Port,Ld2_Pin); 
HAL_Delay(1000);

这行得通,但我想在没有 Cube 和 HAL 库的情况下进行;我想直接编辑寄存器文件。

最佳答案

通过寄存器使用 GPIO 非常简单。您不必编写自己的启动程序(就像@old_timer 的回答一样)。只需两步

您将需要 STM 提供的 CMSIS header ,其中包含数据类型声明和人类可读的#defines 和 reference manual

  1. 启用 GPIO 端口时钟。例如:RCC -> APB2ENR |= RCC_APB2ENR_IOPAEN;
  2. 使用 CRL/CRH GPIO 寄存器配置引脚
#define GPIO_OUTPUT_2MHz (0b10)
#define GPIO_OUTPUT_PUSH_PULL (0 << 2)
GPIOA -> CRL &= ~(GPIO_CRL_MODE0 | GPIO_CRL_CNF0);
GPIOA -> CRL |= GPIO_OUTPUT_2MHz | GPIO_OUTPUT_PUSH_PULL;
  1. 操纵输出
  /* to toggle */
GPIOA -> ODR ^= (1 << pinNummer);
/* to set */
GPIOA -> BSRR = (1 << pinNummer);
/* to reset */
GPIOA -> BRR = (1 << pinNummer);
//or
GPIOA -> BSRR = (1 << (pinNummer + 16));

关于c - STM32F103 GPIO 端口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59546305/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com