stm32重映射USART2方法及函数及理解

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

stm32f107重映射USART2

USART2默认的TX/RX在PA.2/3,若PA.2/3用于其它用途,需要把USART2的TX/RX重映射到PD.5/6。

库函数的调用

(1)使能被重新映射到的I/O端口时钟

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD, ENABLE);

(2)使能被重新映射的外设时钟

RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART2, ENABLE);

(3)使能AFIO功能的时钟(勿忘!)

RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);

(4)进行重映射GPIO_PinRemapConfig(GPIO_Remap_USART2, ENABLE);

参考stm32f10x_uart_ST3.5.0.rar中的void USART2_Remap_Config(void);

void USART2_Remap_Config(void)

{

GPIO_InitTypeDef GPIO_InitStructure;

USART_InitTypeDef USART_InitStructure;

/* config USART1 clock */

RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART2, ENABLE);

/* Enable Remap clock */

RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);

GPIO_PinRemapConfig(GPIO_Remap_USART2,ENABLE);

/* config the NVIC(USART2) */

NVIC_USART2_Configuration();

/* USART2 Remap GPIO config */

/* Configure USART2 Tx (PD.05) as alternate function push-pull */

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5;

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;

GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;

GPIO_Init(GPIOD, &GPIO_InitStructure);

/* Configure USART2 Rx (PD.06) as input floating */

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6;

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;

GPIO_Init(GPIOD, &GPIO_InitStructure);

/* USART2 mode config */

USART_ART_BaudRate = 9600;

USART_ART_WordLength = USART_WordLength_8b;

USART_ART_StopBits = USART_StopBits_1;

USART_ART_Parity = USART_Parity_No ;

USART_ART_HardwareFlowControl = USART_HardwareFlowControl_None;

USART_ART_Mode = USART_Mode_Rx | USART_Mode_Tx;

USART_Init(USART2, &USART_InitStructure);

/*USART2中断配置*/

USART_ITConfig(USART2, USART_IT_RXNE, ENABLE);

USART_Cmd(USART2, ENABLE);

}

相关文档
最新文档