我运行了一个示例项目,它有 250 毫秒的 HAL_Delay,在 while 循环中 LED 闪烁,还有一个打印“Hello world!”的 HAL_UART_Transmit_IT 函数。HAL_UART_TxCpltCallback 调用自身。
250 毫秒 LED 闪烁不滞后,打印也有效。
问题是;既然中断也需要CPU,为什么led闪烁不滞后?
中断不只是改变了将由 CPU 执行的代码流吗?
2022-12-21 10:13:37
嗯,问题是,你如何定义“阻塞”。
中断方法总是通过中断获取下一个字符,这只需要几个通常可以忽略的时钟周期,但是你当然可以测量它。
与此相反,轮询总是等到字符传输完毕,这在逻辑上会降低 CPU 速度。
嗯,问题是,你如何定义“阻塞”。
中断方法总是通过中断获取下一个字符,这只需要几个通常可以忽略的时钟周期,但是你当然可以测量它。
与此相反,轮询总是等到字符传输完毕,这在逻辑上会降低 CPU 速度。
举报