ロボットとか
ロボットとかのブログ

						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]


					カレンダー
				
				| 10 | 2025/11 | 12 | 
| S | M | T | W | T | F | S | 
|---|---|---|---|---|---|---|
| 1 | ||||||
| 2 | 3 | 4 | 5 | 6 | 7 | 8 | 
| 9 | 10 | 11 | 12 | 13 | 14 | 15 | 
| 16 | 17 | 18 | 19 | 20 | 21 | 22 | 
| 23 | 24 | 25 | 26 | 27 | 28 | 29 | 
| 30 | 


					カテゴリー
				
				

					最新CM
				
				[11/13 SLT-A65]
[12/01 siawase]
[05/01 H238]
[05/01 H238]
[05/01 ねこう]
				

					アーカイブ
				
				


 
	