STM32F103C8T6 使用 BSRR 寄存器实现 GPIOA 快速输出
STM32F103C8T6 使用 BSRR 寄存器实现 GPIOA 快速输出
在 STM32F103C8T6 中,使用 BSRR 寄存器可以直接对 GPIO 的输出状态进行操作,相比使用位操作符,速度更快。
假设要将 GPIOA 的 Pin 5 设置为高电平,可以使用以下代码:
GPIOA->BSRR = (1 << 5);
这段代码将 BSRR 寄存器的第 5 位设置为 1,从而将 GPIOA 的 Pin 5 拉高。
相比之下,使用位操作符的代码如下:
*((volatile uint32_t *)(GPIOA_BASE + 0x10)) = (1 << 5);
这段代码需要先计算 GPIOA 的 ODR 寄存器的地址,然后进行强制类型转换和指针解引用,最后才能进行位操作,效率较低。
因此,为了实现更快的 GPIO 输出,建议使用 BSRR 寄存器。
原文地址: https://www.cveoy.top/t/topic/fNpr 著作权归作者所有。请勿转载和采集!