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