STM32 GPIO复用及重映射

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,原来的不需要去配置。
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值