シリアルポートと通信をするプログラムを作ろうとしています。
しかし、ハードウェアが少し特殊なのですが資料がなく困っています。
C#でシリアルポートと通信する方法は親切にもいくつも転がっているのでなんとかなりそうですが、
見ると文字列かバイト配列でデータを送信するとのこと。
とりあえず、テスト環境としてUSB-シリアルのケーブル2本とリバースの
シリアルケーブルを買って自分自身で送受信する環境を作りました。
C++のソースがあるのですが、C++がほとんどわからないので
大変なのですが、なんとか読んでみてポイントとなる部分を探しました。
で、そのC++のソースが以下の通りです。

int func(char CmdNo, char *Para, int Len){
int i;
char *p = sbuf;

//先頭3バイトは、データ長,0x01,コマンドコードをセットする
sbuf[0] = ( Len == 0 ? strlen( Para ) + 3 : Len + 3 );
sbuf[1] = 0x01;
sbuf[2] = CmdNo;

たぶん、上のコードのsbufはcharの配列を表していると思うのですが、
シリアルポートに送るにはbyteに変換しないとのこと。

これをC#で書こうと思い、これをbyte配列にしたいのですが、
仮にデータ長が3バイト、CmdNoが 
const char num = 0x10;
だとすると、

byte[] buf = {0x03, 0x01, 0x10};

と書いたのですが、これを送ると受け手側はHEX表示で「c0」と表示されます。
何かが間違っているのでしょうが、上のコードをbyte配列で表す方法を教えてください。