PICR MCU、又は、PICR DSCで複数のRS232ポートは使用できますか?

PICRMCU、又は、PICRDSCで複数のRS-232接続を使用するには、 複数の#USE RS232プリプロセッサ・ディレクティブをSTREAMオプションを使用して設定する必要があります。

#USE RS232プリプロセッサ指令は、GETC、PUTC、PRINTF、KBHITの各機能に対して、#USE RS232が発生するまで有効です。

#USEのSTREAMオプションを使用せずに、1つのRS-232ポート(A)から読み込み、最初のRS-232ポート(A)と2番目のRS-232ポート(B)の両方にデータをエコーする方法を示します:

#USE RS232 (BAUD = 9600, XMIT = PIN_B0, RCV = PIN_B1)

void put_to_a(char c) {
   put(c);
}

char get_from_a(void) {
   return(getc());
}

#USE RS232 (BAUD = 9600, XMIT = PIN_B2, RCV = PIN_B3)

void put_to_b(char b) {
   putc(c);
}

void main(void) {
   char c;

   put_to_a("Online\n\r");
   put_to_b("Online\n\r");

   while(TRUE) {
      c = get_from_a();

      put_to_b(c);
      put_to_a(c);
   }
}

次のサンプル・プログラム例は、上記と同じ操作を実行します。 #USE RS232プリプロセッサ・ディレクティブのSTREAMオプションはコードを読みやすくし推奨する方法です:

#USE RS232 (BAUD = 9600, XMIT = PIN_B0, RCV = PIN_B1, STREAM = COM_A)
#USE RS232 (BAUD = 9600, XMIT = PIN_B2, RCV = PIN_B3, STREAM = COM_B)

void main(void) {
   char c;

   fprintf(COM_A, "Online\n\r");
   fprintf(COM_B, "Online\n\r");

   while(TRUE) {
      c = fgetc(COM_A);

      fputc(c, COM_A);
      fputc(c, COM_B);
   }
}