我用STM32F767写串口程序,原来用PE8,PE7可以收发数据。
PE8,PE7是串口7,后来改了一下硬件,改到PF7,PF6,也是串口7.
我改了程序,如下:
void HAL_UART_MspInit(UART_HandleTypeDef *huart)
{
//GPIO端口设置
GPIO_InitTypeDef GPIO_Initure;
if(huart->Instance==UART7)//如果是串口1,进行串口1 MSP初始化
{
__HAL_RCC_GPIOF_CLK_ENABLE(); //使能GPIOF时钟
__HAL_RCC_UART7_CLK_ENABLE(); //使能USART1时钟
GPIO_Initure.Pin=GPIO_PIN_7; //PF9
GPIO_Initure.Mode=GPIO_MODE_AF_PP; //复用推挽输出
GPIO_Initure.Pull=GPIO_PULLUP; //上拉
GPIO_Initure.Speed=GPIO_SPEED_FAST; //高速
GPIO_Initure.Alternate=GPIO_AF8_UART7 ; //复用为USART1
HAL_GPIO_Init(GPIOF,&GPIO_Initure); //初始化PA9
GPIO_Initure.Pin=GPIO_PIN_6; //PA10
HAL_GPIO_Init(GPIOF,&GPIO_Initure); //初始化PA10
#if EN_UART7_RX
HAL_NVIC_EnableIRQ(UART7_IRQn); //使能USART1中断通道
HAL_NVIC_SetPriority(UART7_IRQn,3,3); //抢占优先级3,子优先级3
#endif
}
}
可是就收不到数据了。请问高手,程序哪里有问题吗?谢谢!
|