这种改变的方法极为不便。以IIC操作可以这样改,先做好全局定义: #define IIC_SDA_PORT GPIOD #define IIC_SDA_PIN GPIO_Pin_4 #define IIC_SDA_SOUR GPIO_PinSource4 下面是STM32F1的配置方法 #if IIC_SDA_SOUR < 8 //PIN 0-7 #define SDA_IN() {IIC_SDA_PORT->CRL&=(~((u32)15<<(IIC_SDA_SOUR*4)));\ IIC_SDA_PORT->CRL|=(u32)8<<(IIC_SDA_SOUR*4);} #define SDA_OUT() {IIC_SDA_PORT->CRL&=(~((u32)15<<(IIC_SDA_SOUR*4)));\ IIC_SDA_PORT->CRL|=(u32)3<<(IIC_SDA_SOUR*4);} #else //PIN 8-15 #define SDA_IN() {IIC_SDA_PORT->CRH&=(~((u32)15<<((IIC_SDA_SOUR-8)*4)));\ IIC_SDA_PORT->CRH|=(u32)8<<((IIC_SDA_SOUR-8)*4);} #define SDA_OUT() {IIC_SDA_PORT->CRH&=(~((u32)15<<((IIC_SDA_SOUR-8)*4)));\ IIC_SDA_PORT->CRH|=(u32)3<<((IIC_SDA_SOUR-8)*4);} #endif 下面是F4的配置方法: #define SDA_IN() {IIC_SDA_PORT->MODER&=~(3<<(IIC_SDA_SOUR*2));\ IIC_SDA_PORT->MODER|=0<<IIC_SDA_SOUR*2;} #define SDA_OUT() {IIC_SDA_PORT->MODER&=~(3<<(IIC_SDA_SOUR*2));\ IIC_SDA_PORT->MODER|=1<<IIC_SDA_SOUR*2;} 调整一个引脚,只需修改对应的全局宏定义即可。关注我,编程不迷路 ![]() |