?
#define __HAL_RCC_GPIOH_CLK_ENABLE() do { \
__IO uint32_t tmpreg = 0x00U; \
SET_BIT(RCC->AHB1ENR, RCC_AHB1ENR_GPIOHEN); \
/* Delay after an RCC peripheral clock enabling */ \
tmpreg = READ_BIT(RCC->AHB1ENR, RCC_AHB1ENR_GPIOHEN); \
UNUSED(tmpreg); \
} while(0U)
以上代码片段是类函数宏__HAL_RCC_GPIOH_CLK_ENABLE()的宏定义。
宏扩展为do-while循环,使用STM32 HAL库启用STM32微控制器上的GPIOH时钟。
分解一下宏的定义,宏定义包括以下步骤: