一、巧妙使用宏定义 (一)现有问题 上一节中,使用了包含有引脚、模式、速度的结构体变量的配置信息,但是移植性不强,移植后改动的地方较多,上一节代码如下: RCC->APB2ENR|= ((1)<<3); //打开GPIO端口的时钟 /* 填写配置信息——给结构体中的成员赋值。 */ GPIO_InitStructure_G.GPIO_Pin = GPIO_Pin_0; GPIO_InitStructure_G.GPIO_Mode = GPIO_Mode_OUT_PP; GPIO_InitStructure_G.GPIO_Speed = GPIO_Speed_50MZ;