RXduino  1.20a
RXduinoマニュアル 最終更新日 平成26年6月29日
型定義 | 列挙型 | 関数
tkdn_sci.h

RXマイコンのシリアル通信を扱う [詳細]

#include "tkdn_hal.h"

ソースコードを見る。

型定義

typedef struct sci_str sci_t
 SCI情報構造体のハンドラ(拡張版SCIルーチンで使用する) [詳細]
 

列挙型

enum  SCI_PORT {
  SCI_NONE, SCI_AUTO, SCI_USB0, SCI_USB1,
  SCI_SCI0P2x, SCI_SCI1JTAG, SCI_SCI2A, SCI_SCI2B,
  SCI_SCI6A, SCI_SCI6B
}
 SCIの動作ポート定数 [詳細]
 
enum  CRLFMODE { CRLF_NONE, CRLF_CR, CRLF_CRLF }
 CR(\r == 0x0d)やLF(\n == 0x0a)の取り扱い方法 [詳細]
 

関数

SCI_PORT sci_init (SCI_PORT _port, int bps)
 デフォルトのSCIポートを初期化する [詳細]
 
SCI_PORT sci_getport (void)
 デフォルトのSCIポートの使用ポートを取得する [詳細]
 
int sci_putc (char c)
 デフォルトのSCIポートに1文字送信する [詳細]
 
int sci_puts (const char *str)
 デフォルトのSCIポートに文字列を送信する [詳細]
 
char sci_getc (void)
 デフォルトのSCIポートから受信した文字をバッファから1文字読み出して返す [詳細]
 
char * sci_gets (char *s, int max)
 デフォルトのSCIポートから受信した文字を、文字列として読み出す。エコーバックも行う。 [詳細]
 
void sci_writedata (const unsigned char *data, int len)
 デフォルトのSCIポートにバイナリデータを送信する [詳細]
 
void sci_readdata (unsigned char *data, int len)
 デフォルトのSCIポートからバイナリデータを受信する [詳細]
 
int sci_rxcount (void)
 デフォルトのSCIポートから受信したデータがバッファに溜まっている量を調べる [詳細]
 
void sci_convert_crlf (CRLFMODE tx, CRLFMODE rx)
 デフォルトのSCIポートで送受信するデータのCRやLFの変換方法を指定する [詳細]
 
char sci_peek (void)
 デフォルトのSCIポートの受信データを覗き見る [詳細]
 
void sci_flush (void)
 デフォルトのSCIポートの送信データをフラッシュする [詳細]
 

説明

RXマイコンのシリアル通信を扱う

Serial クラスはこのルーチンをC++でカプセル化したものである。

tkdn_sci.h で定義されています。

型定義

typedef struct sci_str sci_t

SCI情報構造体のハンドラ(拡張版SCIルーチンで使用する)

覚え書き
構造体の実際の中身は気にしなくてよい

tkdn_sci.h91 行で定義されています。

列挙型

enum SCI_PORT

SCIの動作ポート定数

列挙型の値
SCI_NONE 

SCIを使わない

SCI_AUTO 

SCIを自動選択

SCI_USB0 

USB0 の仮想COMポートを使う

SCI_USB1 

USB1 の仮想COMポートを使う ※ 未実装

SCI_SCI0P2x 

SCI0 (ポートP20,P21と兼用) を使う

SCI_SCI1JTAG 

SCI1 (ポートPF0,PF2,JTAGと兼用) を使う

SCI_SCI2A 

SCI2A (ポートP13,P12)を使う

SCI_SCI2B 

SCI2B (ポートP50,P52)を使う

SCI_SCI6A 

SCI6A (ポートP00,P01)を使う ※100ピンデバイスにはない

SCI_SCI6B 

SCI6B (ポートP32,P33)を使う

tkdn_sci.h37 行で定義されています。

enum CRLFMODE

CR(\r == 0x0d)やLF(\n == 0x0a)の取り扱い方法

列挙型の値
CRLF_NONE 

CRやLFを変換しない

CRLF_CR 

改行はCRのみである

CRLF_CRLF 

改行はCRとLFである

tkdn_sci.h53 行で定義されています。

関数

SCI_PORT sci_init ( SCI_PORT  _port,
int  bps 
)

デフォルトのSCIポートを初期化する

引数
_port使いたいポートを指定する
bpsボーレート(bps)
戻り値
実際に使用されたポートが SCI_PORT 型で返る
覚え書き
SCI_AUTOを指定した場合は、実際にオープンされたポート番号が返る
警告
SCI_AUTOを指定した場合は、SCI_USB0とSCI0、SCI1で待ちうけて何かデータが送られてくるまで待機し、制御を返さない。
SCI_PORT sci_getport ( void  )

デフォルトのSCIポートの使用ポートを取得する

戻り値
実際に使用されているポートが SCI_PORT 型で返る
int sci_putc ( char  c)

デフォルトのSCIポートに1文字送信する

引数
c送信した文字コード
戻り値
失敗(送信バッファFULL)したら0を返す。成功したら1を返す。
覚え書き
送信する改行コードは sci_convert_crlf() 関数で指定した方法で変換される
実際には即座に送信するのではなく、送信バッファに溜めるのみである。実際の送信動作は割り込み処理で行われる。
\nを送信しようとして、\n\rに変換されても、戻り値は1である。
int sci_puts ( const char *  str)

デフォルトのSCIポートに文字列を送信する

引数
[in]str送信したい文字列 ヌル文字で終了すること
戻り値
失敗(送信バッファFULL)したら0を返す。成功したら1を返す。
覚え書き
送信する改行コードは sci_convert_crlf() 関数で指定した方法で変換される
実際には即座に送信するのではなく、送信バッファに溜めるのみである。実際の送信動作は割り込み処理で行われる。
\nを送信しようとして、\n\rに変換されても、戻り値は1加算されるのみである。
char sci_getc ( void  )

デフォルトのSCIポートから受信した文字をバッファから1文字読み出して返す

戻り値
受信した文字コード。バッファにデータがなければ\0を返す
覚え書き
受信した改行コードは sci_convert_crlf() 関数で指定した方法で変換される
char* sci_gets ( char *  s,
int  max 
)

デフォルトのSCIポートから受信した文字を、文字列として読み出す。エコーバックも行う。

この関数は受信した文字が指定した文字数に達するか、改行コードを受け取るまで待機する。
格納される文字列の最後にヌルターミネータを付け加えられるが、最大文字数に達した場合はヌルターミネータはつけない。 バックスペースを受信した場合は、格納された文字列の末尾を1つ削除する。

引数
[in]s文字列が格納されるバッファへのポインタ
max受信する最大の文字数
戻り値
受信した文字コード。バッファにデータがなければ\0を返す
覚え書き
受信した改行コードは sci_convert_crlf() 関数で指定した方法で変換される
警告
この関数の中でループするため、この関数が終了するまでイーサネットの処理が止まる。
void sci_writedata ( const unsigned char *  data,
int  len 
)

デフォルトのSCIポートにバイナリデータを送信する

指定した長さのデータを送信する。 この関数は改行コードの変換を行わない。

引数
[in]data送信したいデータを格納したバッファへのポインタ
len送信したいデータ長
覚え書き
実際には即座に送信するのではなく、送信バッファに溜めるのみである。実際の送信動作は割り込み処理で行われる。
void sci_readdata ( unsigned char *  data,
int  len 
)

デフォルトのSCIポートからバイナリデータを受信する

警告
この関数は実装されていない
int sci_rxcount ( void  )

デフォルトのSCIポートから受信したデータがバッファに溜まっている量を調べる

戻り値
受信したデータの量をバイト単位で返す
void sci_convert_crlf ( CRLFMODE  tx,
CRLFMODE  rx 
)

デフォルトのSCIポートで送受信するデータのCRやLFの変換方法を指定する

C言語の改行コードは\nであるが、通信系は\nだったり\rだったり\n\rだったりする。
それらの変換を適切に行い、送受信するデータがC言語のプログラムで扱えるようにする。

引数
tx送信データの改行コード。
rx受信データの改行コード。
戻り値
なし
char sci_peek ( void  )

デフォルトのSCIポートの受信データを覗き見る

受信した文字を受信バッファから取り出すことなく、先頭にある1文字を覗き見る

覚え書き
受信データがないときの挙動は不定である。先に sci_rxcount() 関数を呼び出しておくこと。
戻り値
受信バッファの先頭にある文字
void sci_flush ( void  )

デフォルトのSCIポートの送信データをフラッシュする

戻り値
なし