查詢方式:發(fā)送數(shù)據(jù)——先發(fā)后查;
接收數(shù)據(jù)——先查后收。
中斷方式:發(fā)送數(shù)據(jù)——發(fā)送、等待中斷、中斷中發(fā)送;
接收數(shù)據(jù)——等待中斷、在中斷中接收。
發(fā)送一個字符串
查詢發(fā)送:發(fā)送完一個字節(jié),等待發(fā)送完,繼續(xù)發(fā)送下個字節(jié),直到整個字符串發(fā)送完
在這期間一直占用CPU
中斷發(fā)送:發(fā)送完一個字節(jié)CPU響應中斷將下個字節(jié)放到外設寄存器,直到整個字符串發(fā)完
只有在中斷時占用CPU資源
串口發(fā)送中斷我只用過一次:
只要將第一個字節(jié)送進串口發(fā)送數(shù)據(jù)寄存器,就可以在串口發(fā)送中斷里依次把剩余的字節(jié)都發(fā)送完,省去了等待每一個字節(jié)發(fā)送完的時間。
不過這是在AVR中用的。STM32的DMA就可以實現(xiàn)自動發(fā)送。