C言語関係掲示板

過去ログ

No.911 C言語のシリアル通信について

[戻る] [ホームページ]
No.11545

C言語のシリアル通信について
投稿者---anct(2004/01/07 17:31:53)


C言語でシリアル通信をしたいのですが、
初心者なため、何から始めて良いのか分かりません。
参考図書やサイト、プログラム例がありましたら教えください。
よろしくお願いします。

No.11546

Re:C言語のシリアル通信について
投稿者---おでん(2004/01/07 18:00:07)


>C言語でシリアル通信をしたいのですが、
>初心者なため、何から始めて良いのか分かりません。
>参考図書やサイト、プログラム例がありましたら教えください。
>よろしくお願いします。

最低限、機器構成、OS、コンパイル環境を言わないと
レスつかないと思いますよ?

No.11565

Re:C言語のシリアル通信について
投稿者---anct(2004/01/08 12:51:18)


>最低限、機器構成、OS、コンパイル環境を言わないと
>レスつかないと思いますよ?

機器構成はPICの通信です。OSはWIN98。VC++6.0を使っています。
これらでDCモータの制御を行おうとしています。

No.11566

Re:C言語のシリアル通信について
投稿者---おでん(2004/01/08 13:01:11)


>>最低限、機器構成、OS、コンパイル環境を言わないと
>>レスつかないと思いますよ?
>
>機器構成はPICの通信です。OSはWIN98。VC++6.0を使っています。
>これらでDCモータの制御を行おうとしています。
「シリアル ポート, 受信バッファと送信バッファのプロパティ」
でMSDNを探してみてください。

No.11568

Re:C言語のシリアル通信について(追記)
投稿者---おでん(2004/01/08 13:11:20)


>「シリアル ポート, 受信バッファと送信バッファのプロパティ」
>でMSDNを探してみてください。

昔書いたソースですが・・・、役に立つかな?

CreateFile(),DCB等 検索すると分かると思います。

// COMポートオープン
HANDLE OpenComm( const char * PortName )
{
    HANDLE hComm= CreateFile(
        PortName,       /* シリアルポートの文字列  */
        ACCESS_FLG,  /* アクセスモード         */
        SHARE_MODE,     /* 共有モード                */
        NULL,           /* セキュリティ属性   */
        OPEN_MODE,      /* 作成フラグ                */
        ATTRS_MODE,     /* 属性                  */
        NULL            /* テンプレートのハンドル  */
    );
    if( hComm != INVALID_HANDLE_VALUE ){
        DCB dcb;
        GetCommState( hComm, &dcb ) ; /* DCB を取得 */
        dcb.BaudRate= BPS_0096 ;
//
        dcb.ByteSize= ASC_7 ;
        dcb.Parity  = EVENPARITY ;
        dcb.fParity = TRUE ;
        dcb.StopBits= TWOSTOPBITS ;
//
        SetCommState( hComm, &dcb ) ; /* DCB を設定 */

        COMMTIMEOUTS ct;
        GetCommTimeouts( hComm, &ct ) ;
        ct.ReadTotalTimeoutMultiplier= 1 ;
        ct.ReadTotalTimeoutConstant= 1000 ;
        ct.WriteTotalTimeoutMultiplier= 1 ;
        ct.WriteTotalTimeoutConstant= 1000 ;
        if(!SetCommTimeouts( hComm, &ct )){
            CloseHandle( hComm ) ;
            return 0 ;
        }
        return hComm ;
    }
    return 0 ;
}



No.11588

Re:C言語のシリアル通信について
投稿者---anct(2004/01/09 11:34:01)


>おでんさん

親切なレスありがとうございました。
これを参考にして、これからやっていこうと思います。