新板子上因为考虑元件布局,所以在最初的时候就打算使用USART1的引脚重定向或叫重映射(remap)功能。
USART1在复位时,即缺省状态下是TX、RX分别在PA9、PA10,remap后可以重映射到PB6、PB7.下表来自《STM32参考手册》。
USART1重映射的步骤如下:
1.
使能重映射时钟和USART1重映射后的IO引脚时钟,重映射时钟是指AFIO(《STM32参考手册》中称之为复用功
能IO和调试配置)的时钟,USART1重映射后引脚在GPIOB,所以要使能GPIOB的时钟。
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB | RCC_APB2Periph_AFIO,ENABLE);
2.
使能GPIO的重映射
GPIO_PinRemapConfig(GPIO_Remap_USART1,ENABLE);
3.
配置重映射后的引脚(PB6、PB7)
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOB, &GPIO_InitStructure);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
GPIO_Init(GPIOB, &GPIO_InitStructure);
如此设置后,就可以使用PB6、PB7做为USART1的TX、RX了
文章评论(0条评论)
登录后参与讨论