-2
私のデバイスにusb rs232コンバータを介していくつかの特別な文字を送信する必要があります。usbコンバータrs232を介して特別ascii charを送信
b.cpp:
unsigned char message[] = "ÀwLO~P";
int main(void) {
openPort(port, 9600);
int i = 0;
// while (i < 2000) {
writePort(message);
char* readChar = readPort();
cout <<"rr "<< static_cast<string>(readChar);
// i++;
// sleep(5);
// }
closePort();
return EXIT_SUCCESS;
}
マイWRITEPORT機能:
void writePort(unsigned char* message) {
int e;
for (int i = 0; i < 7; i++) {
e = message[i];
printf("Out: %d", e) ;
write(tty_fd, &message[i], 6);
usleep(10);
}
}
私の最初の兆候は、私はprintfのように表示192 "A" の範囲の通常のcharの外にあるBeacoseそれは2バイトに分割されます。
printfの出力:
Out: 195 Out: 128 Out: 119 Out: 76 Out: 79 Out: 126 Out:80
私はspecyficシャア送ることができますどのように?
なぜ' 7'あなたが特定バイト列をしたい場合は、数字の配列としてそれを書くのか?私は 'int i = 0;メッセージ[i]。 i ++ ' – chux
トピックオフ:魔法の数字があなたを殺しています。たとえば、なぜここ6ですか? 'write(tty_fd、&message [i]、6); – user4581301
Àは無効なASCIIなので、ファイルの文字エンコーディングを確認してください。 ASCIIでない可能性があります。 – user4581301