0

私が理解している限りでは、ポーリング モードでは、文字を送受信するために UART レジスタを継続的にチェックする必要があります。私はそれを機能させました。次のステップはFIFOを扱うことです。私はそれを有効にしましたが、読み取り/書き込み操作を行うチャンスはありませんでした。すべてが以前と同じように機能します。

今のところ、割り込みは使用していません。

TX および RX レジスタをプローブするだけでなく、FIFO モードを特に利用するために何かする必要がありますか?

ポーリングでは、少なくともボーレートが 1200 の場合、FIFO を使用する場合と使用しない場合の違いはほとんどないように思えます。

4

2 に答える 2

0

Correct, for polling, FIFO or non-FIFO makes no difference. Bit 5 or LSR register indicates THR register is empty or not. In FIFO mode, this bit just tells whether the FIFO is empty or not (So does Bit 6 of LSR, but this also indicates whether tx transmission is complete or not). By polling, it is not possible to know what is the current depth of the tx FIFO.

In some UARTs, there is a special THRE (Transmit Holding Register Empty) interrupt mode, which if enabled, switches the functionality of LSR[5] to indicate whether tx FIFO is full or not. This is helpful, since we can continuously write to the tx FIFO until this bit becomes 1.

For data reception, whether or not in FIFO mode, LSR[0] indicates whether data is available for read (irrespective or whether it comes from FIFO or RBR register) or not.

于 2013-06-17T08:25:10.803 に答える