Question
STM32CubeMX 4.7.1 Make USART2(REMAP_USART2) Code Run Error!
Posted on May 22, 2015 at 05:56
//--------------------------------------------------------------------------------------------------------------
/* USER CODE BEGIN USART2_MspInit 0 */ /* USER CODE END USART2_MspInit 0 */ /* Peripheral clock enable */ __USART2_CLK_ENABLE(); /**USART2 GPIO Configuration PD5 ------> USART2_TX PD6 ------> USART2_RX */ GPIO_InitStruct.Pin = GPIO_PIN_5; GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; GPIO_InitStruct.Speed = GPIO_SPEED_LOW; HAL_GPIO_Init(GPIOD, &GPIO_InitStruct); GPIO_InitStruct.Pin = GPIO_PIN_6; GPIO_InitStruct.Mode = GPIO_MODE_INPUT; GPIO_InitStruct.Pull = GPIO_NOPULL; HAL_GPIO_Init(GPIOD, &GPIO_InitStruct); __HAL_AFIO_REMAP_USART2_ENABLE(); // here STM32F103ZE run error! /* System interrupt init*/ HAL_NVIC_SetPriority(USART2_IRQn, 0, 0); HAL_NVIC_EnableIRQ(USART2_IRQn); /* USER CODE BEGIN USART2_MspInit 1 */ /* USER CODE END USART2_MspInit 1 *///--------------------------------------------------------------------------------------------------------------USART2 code run error! but old code is normal! use USE_STDPERIPH_DRIVER lib//-------------------------------------------------------------------------------------------------------------- GPIO_InitTypeDef GPIO_InitStructure; USART_InitTypeDef USART_InitStructure;&sharpifdef USART2_Remap_PD5_PD6 /* Configure USART2 GPIO PD5 PD6 */ RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD | RCC_APB2Periph_AFIO,ENABLE);&sharpelse /* Configure USART2 GPIO PA2 PA3 */ RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_AFIO,ENABLE);&sharpendif /* Configure and enable the USART2 */ RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART2,ENABLE);&sharpifdef USART2_Remap_PD5_PD6 /* USART2 TX PD.05 */ GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; GPIO_Init(GPIOD, &GPIO_InitStructure); /* USART2 RX PD.06 */ GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; GPIO_Init(GPIOD, &GPIO_InitStructure); /*Configure peripheral I/O remapping */ GPIO_PinRemapConfig(GPIO_Remap_USART2, ENABLE);&sharpelse /* USART2 TX PA.02 */ GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; GPIO_Init(GPIOA, &GPIO_InitStructure); /* USART2 RX PA.03 */ GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; GPIO_Init(GPIOA, &GPIO_InitStructure);&sharpendif USART_InitStructure.USART_BaudRate = linecoding2.bitrate; USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None; USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx; USART_Init(USART2, &USART_InitStructure); USART_Cmd(USART2, ENABLE); USART_ITConfig(USART2,USART_IT_RXNE,ENABLE); #stm32cubemx-4.7.1-remap_usart2