举例说明,
#define IS_GPIO_ALL_PERIPH(PERIPH) (((*(uint32_t*)&(PERIPH)) == GPIOA_BASE)|| \
((*(uint32_t*)&(PERIPH)) == GPIOB_BASE) || \
((*(uint32_t*)&(PERIPH)) == GPIOC_BASE) || \
((*(uint32_t*)&(PERIPH)) == GPIOD_BASE) || \
((*(uint32_t*)&(PERIPH)) == GPIOE_BASE) || \
((*(uint32_t*)&(PERIPH)) == GPIOF_BASE) || \
((*(uint32_t*)&(PERIPH)) == GPIOG_BASE))
其中||是逻辑符号 或,不必多说。
\ 是连接符,define需要定义都在同一行,而同一行写不下就可以用"\"表示连接在同一行。

本文介绍了一个用于STM32微控制器中GPIO外设地址检查的宏定义实现方法。通过宏定义`IS_GPIO_ALL_PERIPH`,可以有效地判断传入的参数是否为合法的GPIO外设地址。
4万+

被折叠的 条评论
为什么被折叠?



