首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > 移动应用 >

简单的串口有关问题

2012-03-09 
简单的串口问题#include stdafx.h#include windows.h#include tchar.husing namespace SystemHANDL

简单的串口问题
#include "stdafx.h"
#include "windows.h"
#include "tchar.h"

using namespace System;
HANDLE m_port;
DCB m_dcb;
COMMTIMEOUTS m_commtimeouts;
/*
int main(array<System::String ^> ^args)
{
*/
m_port = CreateFile(_T("COM1"), GENERIC_READ|GENERIC_WRITE, 0, NULL, OPEN_EXISTING, 0, NULL);
if(m_port == INVALID_HANDLE_VALUE)
{
Console::WriteLine(L"no handle");
return false;
}
SetupComm(m_port, 512, 512);
m_dcb.DCBlength = sizeof(DCB);
GetCommState(m_port, &m_dcb);
m_dcb.BaudRate = 19200;
m_dcb.ByteSize = 8;
m_dcb.StopBits = 1;
m_dcb.fParity = NOPARITY;
SetCommState(m_port, &m_dcb);

m_commtimeouts.ReadIntervalTimeout = MAXWORD;
m_commtimeouts.ReadTotalTimeoutConstant = 10;
m_commtimeouts.ReadTotalTimeoutMultiplier = 10;
m_commtimeouts.WriteTotalTimeoutConstant = 50;
m_commtimeouts.WriteTotalTimeoutMultiplier= 100;

SetCommTimeouts(m_port, &m_commtimeouts);

DWORD dw;
TCHAR* ch = L"789";
//char* ch = "789";
PurgeComm(m_port,PURGE_RXCLEAR|PURGE_TXCLEAR);
WriteFile(m_port, ch, /*strlen(ch)*/wcslen(ch)*sizeof(TCHAR), &dw, 0);
  return 0;
/*
}
*/
上述代码在pc上向wince发数据显示正常
但是从wince里向pc上发数据显示乱码
请教原因。
补充:已知pc串口助手和wince串口助手已经通讯过而且正常工作。


[解决办法]
听说wince上只支持unicode,不知道_T,L这些宏混用是否有问题。

[解决办法]
用ASCII试一试,以判定是否是编码的问题

热点排行