rt-thread icon indicating copy to clipboard operation
rt-thread copied to clipboard

n32g452xx BSP包中关于USART2重映射2的宏定义编译报错问题

Open TianLongStudio opened this issue 1 year ago • 0 comments

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);  //正确的

TianLongStudio avatar May 30 '24 05:05 TianLongStudio