sundy 发表于 2019-7-9 09:59:28

uart overrun error

我们在STM32L072芯片上做串口的测试,中断方式收发数据,配置如下:huart5.Instance = USART5;
huart5.Init.BaudRate = 115200;
huart5.Init.WordLength = UART_WORDLENGTH_8B;
huart5.Init.StopBits = UART_STOPBITS_1;
huart5.Init.Parity = UART_PARITY_NONE;
huart5.Init.Mode = UART_MODE_TX_RX;
huart5.Init.HwFlowCtl = UART_HWCONTROL_NONE;
huart5.Init.OverSampling = UART_OVERSAMPLING_16;
huart5.Init.OneBitSampling = UART_ONE_BIT_SAMPLE_DISABLE;
huart5.AdvancedInit.AdvFeatureInit = UART_ADVFEATURE_NO_INIT;


每10ms通过串口工具(Docklight)发送10byte数据给STM32L072,发现MCU在接收2分钟数据后就发生错误,如下图:cid:6ecc4dd6-38f3-4cb5-9801-42cc443242fc
cid:d4df65e2-bffe-4c50-857c-6f3ed2eddc2e
请问,造成出现overrun error可能的远因有哪些?怎么解决此问题?

发表于 2019-7-9 11:44:26

数据没有及时读取走后,有新的数据传输过来。建议用串口中断一直在接收数据。环形队列接收数据。

butterflyspring 发表于 2019-7-10 17:30:29

看不到你上传的图,不过楼上说overrun 定义就是来不及接收数据。所以还是连上仿真器调试一下,看看具体原因:)
页: [1]
查看完整版本: uart overrun error