rt-thread
rt-thread copied to clipboard
n32g452xx BSP包中关于USART2重映射2的宏定义编译报错问题
Hardware Drivers Config -》 On-chip Peripheral Drivers -》 Enable UART -》 ENABLE USART2 -》 select TX/RX Pin of USART2 (USART2:(TX:PC8, RX::PC9)) 保存后编译报错。 原因: 打开Rt-Thread源代码路径:bsp/n32g452xx/n32g452xx-mini-system/board/msp/n32_msp.c中的如下代码片段
#ifdef BSP_USING_UART2
if (USART2 == USARTx)
{
RCC_EnableAPB1PeriphClk(RCC_APB1_PERIPH_USART2, ENABLE);
#ifdef BSP_USING_UART2_PIN_RMP1
RCC_EnableAPB2PeriphClk(RCC_APB2_PERIPH_AFIO, ENABLE);
GPIO_ConfigPinRemap(GPIO_RMP1_USART2, ENABLE);
RCC_EnableAPB2PeriphClk(RCC_APB2_PERIPH_GPIOD, ENABLE);
GPIO_InitCtlStruct.GPIO_Mode = GPIO_Mode_AF_PP;
GPIO_InitCtlStruct.Pin = GPIO_PIN_5;
GPIO_InitPeripheral(GPIOD, &GPIO_InitCtlStruct);
GPIO_InitCtlStruct.GPIO_Mode = GPIO_Mode_IN_FLOATING;
GPIO_InitCtlStruct.Pin = GPIO_PIN_6;
GPIO_InitPeripheral(GPIOD, &GPIO_InitCtlStruct);
#elif defined (BSP_USING_UART2_PIN_RMP2)
RCC_EnableAPB2PeriphClk(RCC_APB2_PERIPH_AFIO, ENABLE);
GPIO_ConfigPinRemap(GPIO_RMCP2_USART2, ENABLE); //注意这里
RCC_EnableAPB2PeriphClk(RCC_APB2_PERIPH_GPIOC, ENABLE);
GPIO_InitCtlStruct.GPIO_Mode = GPIO_Mode_AF_PP;
GPIO_InitCtlStruct.Pin = GPIO_PIN_8;
GPIO_InitPeripheral(GPIOC, &GPIO_InitCtlStruct);
GPIO_InitCtlStruct.GPIO_Mode = GPIO_Mode_IN_FLOATING;
GPIO_InitCtlStruct.Pin = GPIO_PIN_9;
GPIO_InitPeripheral(GPIOC, &GPIO_InitCtlStruct);
应该修改为这样:
GPIO_ConfigPinRemap(GPIO_RMCP2_USART2, ENABLE); //仓库中现有的问题代码 多了一个字母C
GPIO_ConfigPinRemap(GPIO_RMP2_USART2, ENABLE); //正确的