CH582M的串口中斷服務(wù)函數(shù)要怎么才能觸發(fā)?
使用中斷發(fā)送數(shù)據(jù) ,要怎么才能觸發(fā)中斷服務(wù)函數(shù)。
CH582M的串口中斷服務(wù)函數(shù)要怎么才能觸發(fā)?
使用中斷發(fā)送數(shù)據(jù) ,要怎么才能觸發(fā)中斷服務(wù)函數(shù)。
http://www.findthetime.net/bbs/thread-92172-1.html
使能中斷的情況下,先向R8_UART1_THR或者說發(fā)送fifo中填充一組數(shù)據(jù),這組數(shù)據(jù)發(fā)完后會進(jìn)uart中斷“發(fā)送緩存空”的case,參考上面的帖子。
我現(xiàn)在想每發(fā)送一個字節(jié)就觸發(fā)一次中斷,要怎么處理。
①啟用接收中斷時,加一個RB_IER_THR_EMPTY以啟用發(fā)送中斷,如下這樣寫;
UART1_INTCfg(ENABLE, RB_IER_RECV_RDY | RB_IER_LINE_STAT | RB_IER_THR_EMPTY);
②在其他地方比如說主函數(shù)中主動往R8_UART1_THR中填寫一個數(shù)據(jù),發(fā)送出去后會產(chǎn)生發(fā)送緩存區(qū)空中斷,進(jìn)UART中斷服務(wù)函數(shù)下的UART_II_THR_EMPTY這個case;
③在這個case中再逐個字節(jié)填入R8_UART1_THR,直到判斷所有數(shù)據(jù)都發(fā)完就不再填充數(shù)據(jù)。
發(fā)送中斷標(biāo)志在進(jìn)入中斷服務(wù)函數(shù)switch(UART1_GetITFlag())這里,讀IIR寄存器已經(jīng)清除了。
這個需不需要關(guān)閉FIFO
如上使用的話,不用關(guān)閉FIFO。