|
|
EnglishLoading
|
複数のシリアルを使う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));
}
}
}
|
|
|
|
|