串口發(fā)送中斷,串口接收到數(shù)據(jù),開啟發(fā)送中斷,第一次可以進入中斷發(fā)送數(shù)據(jù);再接收數(shù)據(jù),開啟數(shù)據(jù)發(fā)送中斷,進入不了?這個問題怎么解決
您好,看描述不太清晰,能否提供更多信息。
“開啟發(fā)送中斷”是指使能發(fā)送中斷嗎,這樣的話使能的時候會觸發(fā)一次發(fā)送中斷(從0變1觸發(fā)),再次使能是不會觸發(fā)的。
使能發(fā)送中斷之后,先手動向R8_UART1_THR或者說發(fā)送fifo中填充一組數(shù)據(jù),這組數(shù)據(jù)發(fā)完后會由于“發(fā)送保持寄存器空”自動觸發(fā),進uart中斷“發(fā)送緩存空”的case,在這個case中繼續(xù)填充數(shù)據(jù)即可。
串口收到數(shù)據(jù),開啟中斷發(fā)送,數(shù)據(jù)可以正常發(fā)送,數(shù)據(jù)發(fā)送完關(guān)閉發(fā)送中斷;串口再接收到數(shù)據(jù),開啟發(fā)送中斷,不可以發(fā)送數(shù)據(jù)。
您好,通過您的描述,不太好定位問題。要不您貼一段代碼,或者將工程發(fā)至郵箱zhaiyw@wch.cn。
“發(fā)送中斷”是在數(shù)據(jù)發(fā)送完后被動觸發(fā)的,不必手動開關(guān),初始化UART時開著就行。觸發(fā)之后,在中斷服務(wù)函數(shù)中往THR填充數(shù)據(jù)。要注意PRINT打印函數(shù)使用的也是UART,也會觸發(fā)發(fā)送中斷。
可以參考下方帖子。