2025-11-20 05:29:49
串口发数据为啥要中断呢?因为CPU在干别的事情的时候,得有个信号提醒它该发数据了。接收数据同理,数据来了要马上处理,不能等CPU闲着才看。比如发数据时CPU在算术,中断就插队让数据赶紧走。接收时数据在串口线路上排队,中断一响CPU马上抢着读,不然数据就漏了。
为啥非得用中断?因为轮询太费劲了。假设串口波特率9600,每秒要传115200位。如果用轮询,CPU得每微秒检查一次,忙得团团转。但中断只要数据到就触发一次,处理完再继续干别的。比如发完1字节要104毫秒,轮询浪费了99.9%时间。中断处理只要1毫秒,效率高3倍多。接收时数据到线路上就中断,比轮询快0.1秒每千字。所以中断省时间,还能防数据丢。模拟效果:串口发数据为啥要中断因为CPU忙的时候数据漏了,中断处理快3倍多省时间。
本题链接: