シリアル通信について。
PICからPCにデータ(電圧:最大値5)を受信させようとしています。
受信には C++を用いたプログラムを自作したいのですが、
どうしてもうまくいかなかったため投稿させていただきました。
症状としては、まずポートを開く事すら出来ていません。
RS232c {USBで変換) が接続されているポートはCOM1です。
ポートが開くか確かめるプログラムとしては、次のようなソースを使いました。
#include<windows.h>
#include<iostream>
using namespace std;
int main(void){
HANDLE hCom;
hCom = CreateFile(
(LPCWSTR)"COM1",
GENERIC_READ | GENERIC_WRITE,
0,
NULL,
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL,
NULL
);
if (hCom == INVALID_HANDLE_VALUE) {
cout<<"シリアルポートを開くことが出来ませんでした。\n"<<endl;
return false;
}
CloseHandle( hCom );
return 0;
}
これを実行すると「シリアルポートを開くことが出来ませんでした。」としかなりません。
( (LPCWSTR)"COM1"となっているのは、「'CreateFileW' : 1 番目の引数を 'const char [5]' から 'LPCWSTR' に変換できません。」
と出てしまったためです。)
ハイパーターミナルを用いてCOM1からデータを受信できていることは確認しましたので、
通信が出来ていないわけではないようなのです。
ありふれた質問である事は重々承知の上ですが、
このソースでシリアルポートが開けない理由を教えていただければ幸いです。
環境:Visual C++ 2008 Express Edition
Microsoft Windows XP Version 2002 Service Pack 3
お礼
本当にありがとうございます。大変助かりました! 大分分かった気がします。 またお願いします!