0

UART画面に文字が入力されたときにトリガーするUART割り込みを設定しようとしています。私が設定した方法ですが、送受信時に割り込みがトリガーされるようです。私はデータシートを読みましたが、それができるかどうか、そしてどのようにできるかについては実際にはわかりません。シリアルポートの割り込みが利用可能であると言っているだけです。これが私がUARTを設定した方法です

S0CON   =   0x50;      
PCON    |=  0x80;       /* Double Baud rate */
ADCON0  |=  0x80;       /* Use baudrate generator */
S0RELL  =   0xCC;       /* Baudrate = 9614 Baud @ 16Mhz */
S0RELH  =   0x03;
TI0     =   1;                /* Ready to transmit */
ES0 =1;

誰かがこれをどのように達成できるか考えている可能性がありますか?KeilコンパイラとInfineonC509データセットを使用しています **リンクが修正されました

ありがとうございました

4

1 に答える 1

1

残念ながら、あなたがやりたいことをきれいに行うことができるようには見えません。ユーザーマニュアル(通常、このタイプの問題にはデータシートでは不十分です)を見てください。図7.4を確認してください。チャネル0、TI0、およびRI0に対してハードウェアによって設定された送信および受信割り込みフラグは、どちらもデフォルトのシリアル通信割り込みをトリガーし、どちらも無効にできるようには見えません。

他のオプションがあるかもしれませんが、私は次のいずれかを検討します:

  • ポーリング(UARTの割り込みを使用する場合とは異なります)
  • 割り込みは機能しているので使用しますが、シリアル通信割り込みでRI0が設定されていることを最初に確認し、設定されていない場合はすぐに終了します。(これに関してタイミングの問題がないことを確認し、受信フラグをクリアして、バイトをドロップする可能性がないことを確認してください。)

C509-Lユーザーマニュアルへのリンク(どのくらいの期間持続するかわからない):Infineon製品サイト

于 2012-11-20T22:05:14.537 に答える