美文网首页
STM32 GPIO复用及重映射

STM32 GPIO复用及重映射

作者: 机智的阿成 | 来源:发表于2020-02-21 14:48 被阅读0次

    GPIO管脚复用:
    32芯片内部集成了很多外设控制器,(USART,ADC,CAN等),这些外设控制器也需要通过引脚与外设连接,复用功能是相对于单片机的引脚而言的,复用功能是指单片机的引脚既可以作为普通的GPIO也可以作为内部外设控制器的引脚来使用。比如F1系列PA5引脚可以作为多个SPI、DAC、ADC的复用引脚,但同一时刻只能选择一种。

    
      //GPIOA端口使能
      RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);
      //复用的外设时钟使能
      RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1, ENABLE);
    
    
      //端口模式配置  GPIO_Init
      GPIO_InitTypeDef   GPIO_InitStructure;
    
      GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9; //PA.9
      GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
      GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;//复用推挽输出
      GPIO_Init(GPIOA, &GPIO_InitStructure);//初始化GPIOA.9
    
      GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;//PA10
      GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;//浮空输入
      GPIO_Init(GPIOA, &GPIO_InitStructure);//初始化GPIOA.10  
    
    

    端口重映射:
    GPIO重映射是原IO映射到其他IO口去,应注意操作步骤:

    1.使能被重映射IO端口时钟
    2.使能被重映射的外设时钟
    3.使能AFIO复用时钟(重要)
    4.进行重映射

      //1.重映射后的IO时钟
      RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);
      //2.使能重映射外设时钟
      RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1, ENABLE);
      //3.使能AFIO时钟:
       RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);
       //4.开启重映射:
       GPIO_PinRemapConfig(GPIO_Remap_USART1, ENABLE);
    
    
        //5.GPIO_Init()配制重映射引脚, 这里只需配置重映射后的I/O,原来的不需要去配置。
    

    相关文章

      网友评论

          本文标题:STM32 GPIO复用及重映射

          本文链接:https://www.haomeiwen.com/subject/xskcqhtx.html