H7H2V (20.10.2010 10:49, просмотров: 103) ответил Shura на Фигня какая-то. А с другим софтом?
Если после загрузки компа запускать Сomspy, то байты передаются с ошибками. Если сначала запустить ComPortToolkit, что-нибудь через него отослать, а потом запускать Сomspy, то всё передается правильно. Может ли чего-то донастраивать в порте? Это мой код настройки
void __fastcall TForm1::Button1Click(TObject *Sender)
{
hComm=CreateFile(PortName,GENERIC_READ|GENERIC_WRITE,0,NULL,OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL,0);
if(hComm==INVALID_HANDLE_VALUE)
{
ShowMessage("Ошибка открытия порта.");
Application->Terminate();
}
if(!SetupComm(hComm,InBufSize,OutBufSize))
{
ShowMessage("Ошибка открытия порта.");
Application->Terminate();
}
if(!GetCommState(hComm,&Dcb))
{
ShowMessage("Ошибка открытия порта.");
Application->Terminate();
}
Dcb.BaudRate=Baudrate;
Dcb.Parity=Parity;
Dcb.StopBits=Stopbits;
Dcb.fRtsControl = RTS_CONTROL_ENABLE ;
// Dcb.fRtsControl = RTS_CONTROL_TOGGLE ;
if(!SetCommState(hComm,&Dcb))
{
ShowMessage("Ошибка инициализации порта.");
Application->Terminate();
}
if(!GetCommTimeouts(hComm,&CommTimeouts))
{
ShowMessage("Ошибка инициализации порта.");
Application->Terminate();
}
CommTimeouts.ReadIntervalTimeout = 0;
CommTimeouts.ReadTotalTimeoutMultiplier = 0;
CommTimeouts.ReadTotalTimeoutConstant = 0;
CommTimeouts.WriteTotalTimeoutMultiplier = 0;
CommTimeouts.WriteTotalTimeoutConstant = 0;
if(!SetCommTimeouts(hComm,&CommTimeouts))
{
ShowMessage("Ошибка инициализации порта.");
Application->Terminate();
}
}