0

PIC 16 の USART 機能を使用して 1 文字を受信しようとしています。

送信機と受信機はどちらも PIC 16 です。

receive 関数の呼び出し方が概念的に正しいかどうかを確認できますか

char tmp;

CREN = 0;
CREN = 1;

while(!RCIF); 

if(OERR==1)
{
  tmp = RCREG;
  tmp = RCREG;
  CREN=0;
  DelayMs(5);
  CREN=1;
}
else
{
 tmp = RCREG;
}

CREN = 0;

よろしくお願いします!

4

1 に答える 1

1

最初に UART を開始する必要があります。

  1. SPBRG レジスタにロードする適切な数は、ボーレートと CPU クロック周波数によって異なります (データシートを確認してください)。
  2. レジスタ TXSTA の BRGH ビットを設定します。目的のボー レート ジェネレータによって異なります (データシートを確認してください)。
  3. RCSTA レジスタの設定ビットは、データ長などによって異なります (データシートを確認してください)。RCSTA レジスタの CREN ビットを有効にします。
  4. PIR1.RCIF == 1 ビットを待機します。これは、バッファ レシーバがいっぱいであることを示します (1 バイトのみ)。
于 2011-06-01T09:49:04.597 に答える