私は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);
}
残念ながら永続的に送信を無効にするには思われます。何か案は?
敬具 フレドリック