|
![]() Loading
|
複数のシリアルを使うArduino MEGAなどではSerial、Serial1、Serial2・・のようなインスタンスがあらかじめ用意されていて、 複数のシリアルを同時に使うことができますが、MEGAのインスタンスはポートが固定なので、 本当に同じような仕様でいいのかと悩んでしまい、その機能は実装できていません。 現状のライブラリで複数のシリアルを同時に使うには、tkdn_sciというより低レベルなAPIを使うことになります。 次回か次々回のライブラリ更新時にはC++のSerialクラスを使ってアクセスできるようにします。 以下のプログラムはRaXinoをUSBシリアル変換アダプタ化するものです。 USBから受信したデータをSCI0から出力します。 #include <tkdn_hal.h> typedef struct sci_str { char rxbuf[SCI_BUFSIZE]; char txbuf[SCI_BUFSIZE]; int tx_rptr; int tx_wptr; int rx_rptr; int rx_wptr; SCI_PORT port; CRLFMODE crlf_tx; CRLFMODE crlf_rx; } sci_str; int main() { sci_str sci1,sci2; sci_init_ex(&sci1,SCI_USB0,115200); sci_init_ex(&sci2,SCI_SCI0P2x,115200); while(1) { if(sci_rxcount_ex(&sci1)) { sci_putc_ex(&sci2, sci_getc_ex(&sci1)); } if(sci_rxcount_ex(&sci2)) { sci_putc_ex(&sci1, sci_getc_ex(&sci2)); } } }
|
|
|