STM32F103的PC13、PB3和PB4定义为普通IO口使用

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
PC13初始化:
PC13的.c文件初始化:
void GPIO_Init(void)
{
        GPIO_InitTypeDef  GPIO_InitStructure;
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC| RCC_APB2Periph_AFIO, ENABLE);//使能PORTC口时钟 
        BKP_TamperPinCmd(DISABLE);//关闭入侵检测功能,也就是PC13,可以当普通IO使用
        BKP_ITConfig(DISABLE);    //这样就可以当输出用。

        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13;
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; 
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz;  //最低速率2MHz
        GPIO_Init(GPIOC, &GPIO_InitStructure);
        GPIO_SetBits(GPIOC,GPIO_Pin_13);    //输出1
}
PC13在.h文件的定义:
//IO方向设置
#define     GPIOC13_IO_IN()               {GPIOC->CRH &= 0xFF0FFFFF;GPIOC->CRH|= 0xFF8FFFFF;}
#define     GPIOC13_IO_OUT()           {GPIOC->CRH &= 0xFF0FFFFF;GPIOC->CRH|= 0xFF3FFFFF;}

//IO操作函数   
#define     GPIOC13_OUT    PCout(13) //数据端口PC13
#define     GPIOC13_IN        PCin(13)   //数据端口PC13 
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
GPIOB3、GPIOB4的.c文件初始化:
void GPIO_Init(void)
{
      GPIO_InitTypeDef  GPIO_InitStructure;
      RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB |  RCC_APB2Periph_AFIO, ENABLE);//使能PORTB口时钟、复用引脚PB3、PB4引脚
      GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE);  //关闭JTAG,SWD可以调试的
      GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; 
      GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
      GPIO_Init(GPIOB, &GPIO_InitStructure);

      GPIO_SetBits(GPIOB,GPIO_Pin_3);    //输出1   
      GPIO_SetBits(GPIOB,GPIO_Pin_4);    //输出1    
}

PB3、PB4在.h文件的定义:
//IO方向设置
#define    GPIOB3_IO_IN()       { GPIOB->CRL &= 0xFFFF0FFF;GPIOB->CRL|= 0xFFFF8FFF;}   
#define    GPIOB3_IO_OUT()   {GPIOB->CRL &= 0xFFFF0FFF;GPIOB->CRL |= 0xFFFF3FFF;}    
////IO操作函数   
#define   GPIOB3_OUT    PBout(3) //数据端口PB3                                                                                                       
#define   GPIOB3_IN        PBin(3)  //数据端口PB3                                                                                                   

//IO方向设置
#define    GPIOB4_IO_IN()       {GPIOB->CRL &=  0xFFF0FFFF;GPIOB->CRL |=  0xFFF8FFFF;}
#define    GPIOB4_IO_OUT()   {GPIOB->CRL &=  0xFFF0FFFF;GPIOB->CRL |=  0xFFF3FFFF;}
////IO操作函数   
#define    GPIOB4_OUT    PBout(4) //数据端口PB4                     
#define    GPIOB4_IN        PBin(4)  //数据端口PB4            


猜你喜欢

转载自blog.csdn.net/euxnijuoh/article/details/74939446