关于STM32F767IGT6的串口复用问题?

2019-07-20 02:16发布

我想在PA11,PA12上使用UART4,在正点的模板上写完以后,初始化正常,但是无法发送和接收数据,将UART4改到PC10,PC11上就没问题。正点的模板上UART4就在PC10和PC11上,请教一下我是不是还有哪里漏了改,并附上初始化代码:

void uart_init4(u32 bound)
{       
        //UART
        UART4_Handler.Instance=UART4;                                            //USART4
        UART4_Handler.Init.BaudRate=bound;                                  
        UART4_Handler.Init.WordLength=UART_WORDLENGTH_8B;   
        UART4_Handler.Init.StopBits=UART_STOPBITS_1;          
        UART4_Handler.Init.Parity=UART_PARITY_NONE;                  
        UART4_Handler.Init.HwFlowCtl=UART_HWCONTROL_NONE;
        UART4_Handler.Init.Mode=UART_MODE_TX_RX;                  
        HAL_UART_Init(&UART4_Handler);                                          

}

void HAL_UART_MspInit(UART_HandleTypeDef *huart)
{

        GPIO_InitTypeDef GPIO_Initure;

         if(huart->Instance==UART4)
        {
                __HAL_RCC_GPIOA_CLK_ENABLE();                       
                __HAL_RCC_UART4_CLK_ENABLE();                       
       
                GPIO_Initure.Pin=GPIO_PIN_12;                        //PA12
                GPIO_Initure.Mode=GPIO_MODE_AF_PP;               
                GPIO_Initure.Pull=GPIO_PULLUP;                       
                GPIO_Initure.Speed=GPIO_SPEED_FAST;               
                GPIO_Initure.Alternate=GPIO_AF8_UART4;       
                HAL_GPIO_Init(GPIOA,&GPIO_Initure);                  

                GPIO_Initure.Pin=GPIO_PIN_11;                        //PA11
                HAL_GPIO_Init(GPIOA,&GPIO_Initure);                  
               
#if EN_UART4_RX
                __HAL_UART_ENABLE_IT(huart,UART_IT_RXNE);               
                HAL_NVIC_EnableIRQ(UART4_IRQn);               
                HAL_NVIC_SetPriority(UART4_IRQn,2,2);       
#endif       

         }
}



友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。