1

Arduino の Web サイトの Serial.cpp コードを使用しています。

私が今行っているのは、R220HPRS リレー スイッチを使用することです。問題は、サンプル コードが VB であり、私は c++ を使用していることです。そこで、マニュアルを読んだところ、ASCII 254 と ASCII 1 を送信すると、リレー 1 のスイッチがオンになることがわかりました。

VB の例

  MSComm1.Output = Chr$(254) 'Enter Command Mode 
  MSComm1.Output = Chr$(1) 'Turn On Relay 1 

次に、Arduino の Web サイトから Serial.cpp を見つけ、それを使用してみることにしました。そして、私がしたとき、私はデバイスに接続しました(または、プログラムを実行したときに接続したと言われました)が、ASCII 254とASCII 1を送信する方法がわかりません

これがSerial.cppのコードです

bool Serial::WriteData(char *buffer, unsigned int nbChar)
{
    DWORD bytesSend;

    //Try to write the buffer on the Serial port
    if(!WriteFile(this->hSerial, (void *)buffer, nbChar, &bytesSend, 0))
    {
        //In case it don't work get comm error and return false
        ClearCommError(this->hSerial, &this->errors, &this->status);

        return false;
    }
    else
        return true;
}

主要

 int _tmain(int argc, _TCHAR* argv[])
{
    printf("Welcome to the serial test app!\n\n");

Serial* SP = new Serial("\\\\.\\COM3");    // adjust as needed

if (SP->IsConnected())
    printf("We're connected");

while(SP->IsConnected())
{
    char *chr0 = "254";
    SP->WriteData(chr0, 1); 
    SP->WriteData(chr0, 1);
    Sleep(500);
}
return 0;
}

chr0 = "254" は ASCII ではないことはわかっていますが、ASCII 254 と ASCII 1 を送信する方法がわかりません。

4

2 に答える 2

4

値が 245のシングルを送信するにはchar、それを char にする必要があります。

char chr0 = 254; 

SP->WriteData(&chr0, 1); 
于 2013-07-15T12:16:17.950 に答える
0
char *chr0, you are pointing to a sting.
it should be char ch = 254;
and then send the address of ch.

単一文字の単一引用符を覚えておいてください!!!

于 2013-07-15T12:13:40.113 に答える