ST意法半导体
直播中

rosa

12年用户 1118经验值
私信 关注
[问答]

UART中断只是改变了CPU执行的代码流吗?

我运行了一个示例项目,它有 250 毫秒的 HAL_Delay,在 while 循环中 LED 闪烁,还有一个打印“Hello world!”的 HAL_UART_Transmit_IT 函数。HAL_UART_TxCpltCallback 调用自身。
250 毫秒 LED 闪烁不滞后,打印也有效。
问题是;既然中断也需要CPU,为什么led闪烁不滞后?
中断不只是改变了将由 CPU 执行的代码流吗?

回帖(1)

云解相

2022-12-21 10:13:37
嗯,问题是,你如何定义“阻塞”。
中断方法总是通过中断获取下一个字符,这只需要几个通常可以忽略的时钟周期,但是你当然可以测量它。
与此相反,轮询总是等到字符传输完毕,这在逻辑上会降低 CPU 速度。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分