小编Jon*_*ton的帖子

两个USART中断溢出错误

在STM32F2上使用两个以115200波特率运行的USART,一个用于与无线电模块通信,另一个用于从PC进行串行通信.时钟速度为120MHz.

当同时从两个USART接收数据溢出时,可能会在一个USART或另一个USART上发生错误.快速回退包络计算应该有足够的时间来处理两者,因为中断只是简单地将字节复制到循环缓冲区.

在理论和测量中,将字节推送到缓冲区的中断代码应该/确实以2-4μS的顺序运行,在115200波特处我们有大约70us处理每个字符.

为什么我们在一个或另一个USART上看到偶尔的ORE?

更新 - 其他信息:

  1. 我们的代码中没有其他ISR此时正在触发.
  2. 我们正在运行Keil RTX,其中systick中断配置为每隔10mS触发一次.
  3. 我们目前没有禁用任何中断.
  4. 根据本书(Cortex-M处理器系列的设计者指南),中断延迟大约为12个周期(并非真正致命)

鉴于上述所有70us在我们清除中断的时间内至少是10倍 - 所以我不确定它是如此容易解释.我是否应该断定我必须考虑其他一些因素?

MDK-ARM是版本4.70

指纹中断由RTOS使用,因此无法计时其他ISR每个字节需要2-3μS才能运行.

embedded serial-port interrupt stm32

8
推荐指数
1
解决办法
7218
查看次数

标签 统计

embedded ×1

interrupt ×1

serial-port ×1

stm32 ×1