ロボットとか
ロボットとかのブログ
×
[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
Visual Studio 2008でシリアル通信をしようとしたところ
'CreateFileW' : 1 番目の引数を 'const char [5]' から 'LPCWSTR' に変換できません
とでた.
調べてみたところ解決方法は,プロジェクト→プロパティ→構成のプロパティ→全般→文字セット→「マルチバイト文字セットを使用する/設定なし」を選択で解決.
'CreateFileW' : 1 番目の引数を 'const char [5]' から 'LPCWSTR' に変換できません
とでた.
調べてみたところ解決方法は,プロジェクト→プロパティ→構成のプロパティ→全般→文字セット→「マルチバイト文字セットを使用する/設定なし」を選択で解決.
#include "stdafx.h"
#include "windows.h"
#include "time.h"
#include "stdio.h"
#include "ctype.h"
int _tmain(int argc, _TCHAR* argv[])
{
time_t t,t0;
HANDLE hComm; /* シリアルポートのハンドル */
DCB dcb; /* 通信パラメータ */
char* str="a"; /* 送信データを格納する */
DWORD writesize; /* ポートへ書き込んだバイト数 */
hComm = CreateFile(
"COM1",/* シリアルポートの指定 */
GENERIC_READ | GENERIC_WRITE, /* アクセスモード */
0, /* 共有モード */
NULL, /* セキュリティ属性 */
OPEN_EXISTING, /* 作成フラグ */
FILE_ATTRIBUTE_NORMAL, /* 属性 */
NULL /* テンプレートのハンドル */
);
if (hComm == INVALID_HANDLE_VALUE) {
printf("シリアルポートを開くことが出来ませんでした。\n");
return false;
}
GetCommState(hComm, &dcb); /* DCB を取得 */
dcb.BaudRate = 9600;
dcb.ByteSize = 8;
dcb.Parity = NOPARITY;
dcb.StopBits = ONESTOPBIT;
SetCommState(hComm, &dcb); /* DCB を設定 */
COMMTIMEOUTS CommTimeout;
GetCommTimeouts(hComm,&CommTimeout);
CommTimeout.ReadIntervalTimeout = 3000;
CommTimeout.ReadTotalTimeoutMultiplier = 3000;
CommTimeout.ReadTotalTimeoutConstant = 3000;
CommTimeout.WriteTotalTimeoutMultiplier = 3000;
CommTimeout.WriteTotalTimeoutConstant = 3000;
SetCommTimeouts(hComm,&CommTimeout);
t0 = time(NULL);
while(1){
t = time(NULL);
if((t-t0)>0){
if(str=="b"){
str="a";
}else{
str="b";
}
printf("%s\n\r", str);
WriteFile(hComm, str, strlen(str), &writesize, NULL);/* シリアルポートに書き込み */
t0 = time(NULL);
}
}
CloseHandle(hComm);
return 0;
}
#include "windows.h"
#include "time.h"
#include "stdio.h"
#include "ctype.h"
int _tmain(int argc, _TCHAR* argv[])
{
time_t t,t0;
HANDLE hComm; /* シリアルポートのハンドル */
DCB dcb; /* 通信パラメータ */
char* str="a"; /* 送信データを格納する */
DWORD writesize; /* ポートへ書き込んだバイト数 */
hComm = CreateFile(
"COM1",/* シリアルポートの指定 */
GENERIC_READ | GENERIC_WRITE, /* アクセスモード */
0, /* 共有モード */
NULL, /* セキュリティ属性 */
OPEN_EXISTING, /* 作成フラグ */
FILE_ATTRIBUTE_NORMAL, /* 属性 */
NULL /* テンプレートのハンドル */
);
if (hComm == INVALID_HANDLE_VALUE) {
printf("シリアルポートを開くことが出来ませんでした。\n");
return false;
}
GetCommState(hComm, &dcb); /* DCB を取得 */
dcb.BaudRate = 9600;
dcb.ByteSize = 8;
dcb.Parity = NOPARITY;
dcb.StopBits = ONESTOPBIT;
SetCommState(hComm, &dcb); /* DCB を設定 */
COMMTIMEOUTS CommTimeout;
GetCommTimeouts(hComm,&CommTimeout);
CommTimeout.ReadIntervalTimeout = 3000;
CommTimeout.ReadTotalTimeoutMultiplier = 3000;
CommTimeout.ReadTotalTimeoutConstant = 3000;
CommTimeout.WriteTotalTimeoutMultiplier = 3000;
CommTimeout.WriteTotalTimeoutConstant = 3000;
SetCommTimeouts(hComm,&CommTimeout);
t0 = time(NULL);
while(1){
t = time(NULL);
if((t-t0)>0){
if(str=="b"){
str="a";
}else{
str="b";
}
printf("%s\n\r", str);
WriteFile(hComm, str, strlen(str), &writesize, NULL);/* シリアルポートに書き込み */
t0 = time(NULL);
}
}
CloseHandle(hComm);
return 0;
}
PR
この記事にコメントする
この記事へのトラックバック
この記事にトラックバックする:
プロフィール
名前:H238/ながつき |
このブログについて: |
ロボットについての勉強などを中心に勝手に書いていきます.あくまで本人のメモなので期待しないように. ちなみにブログデザインは趣味. |
ブログ内検索
[活動101] [活動102] [活動103]
[SH2] [マイコン]
[電子回路]
[プログラム] [VS] [OpenCV]
[知能ロボ]
[プレゼン] [CAD]
カレンダー
カテゴリー
最新記事
最新CM
[11/13 SLT-A65]
[12/01 siawase]
[05/01 H238]
[05/01 H238]
[05/01 ねこう]
アーカイブ