我在Atxmega256上遇到了USART流量控制問題。我正在與使用RTS/CTS進行流量控制的調制解調器進行通信。一旦調制解調器將CTS設置爲低電平,我想停止發送數據直到它再次變高。我目前使用中斷驅動的USART例程,似乎無法找到停止發送的好方法。如果我只是在CTS變低時停止發送,則發送緩衝區中的所有數據仍將被髮送並因此丟失。Atxmega USART流量控制
我嘗試了後續禁用/啓用發送:
if(false == clearToSend()) {
USART_TxdInterruptLevel_Set(data->usart, USART_TXCINTLVL_OFF_gc);
while(false == clearToSend()) {}
USART_TxdInterruptLevel_Set(data->usart, USART_TXCINTLVL_LO_gc);
}
不幸的是,這似乎永久禁止發送。有任何想法嗎?
問候 弗雷德裏克