基于HAL库,STM32F0芯片通信过程中更改通信波特率,串口重启函数会挂掉!不知道问题出在哪里。。。

2019-07-21 05:36发布

如题:基于HAL库,STM32F0芯片通信过程中更改通信波特率,串口重启函数会挂掉!不知道问题出在哪里。。。

串口的初始化函数,是自动生成的,包括DMA配置、USART2配置,以及
    HAL_UART_Receive_DMA(&huart2, UsartType.RX_pData, RX_LEN); //开启串口DMA接收
    __HAL_UART_ENABLE_IT(&huart2, UART_IT_IDLE);               //开启串口接收空闲中断


正常上电初始化流程没有任何问题,通信可以以配置的9600波特率跑起来。
但是使用通信报文更换通信波特率后,然后将串口初始化函数重新调用了一遍,
然后,就导致程序挂掉了,仿真显示进入了硬件错误:
void HardFault_Handler(void)
{}

不知道这到底是怎么回事!!
应该如何在程序运行过程中重启一个外设呢??
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。