#c #serial-port #compiler-errors
#c #последовательный порт #ошибки компилятора
Вопрос:
Я пытаюсь заставить загореться светодиод, подключенный к последовательному порту. Я следовал пошаговому руководству, которое можно найти здесь. Я точно следовал инструкциям, но не могу заставить код скомпилироваться. Из руководства PDF следует, что это часть 2, которая не компилируется, которую я воспроизводю здесь:
//<Set serial port parameters>
DCB dcbSerialParams = {0};
dcbSerial.DCBlength=sizeof(dcbSerialParams);
if (!GetCommState(hSerial, amp;dcbSerialParams))
{
//error getting state
}
dcbSerialParams.BaudRate=CBR_19200;
dcbSerialParams.ByteSize=8;
dcbSerialParams.StopBits=ONESTOPBIT;
dcbSerialParams.Parity=NOPARITY;
if(!SetCommState(hSerial, amp;dcbSerialParams))
{
//error setting serial port state
}
//</Set serial port parameters>
Я включил в код, как указано, но я получаю сообщение об ошибке «`dcbSerial’ необъявленный (сначала используйте эту функцию)». Я использую Dev-C .
По сути, все, что я пытаюсь сделать, это получить команду, которая включает и выключает индикатор, который я могу вставить в другую имеющуюся у меня программу (устройство слежения за глазами — идея в том, чтобы заставить светодиод мигать, когда ваши глаза смотрят на него).
Любая помощь очень ценится.
Ответ №1:
dcbSerial.DCBlength=sizeof(dcbSerialParams);
должно быть:
dcbSerialParams.DCBlength=sizeof(dcbSerialParams);
На самом деле, вам придется приложить немного больше усилий для чтения и понимания сообщений об ошибках компилятора — это было настолько ясно, насколько это возможно.
Ответ №2:
Замените dcbSerial
на dcbSerialParams
.
Комментарии:
1. Большое спасибо. Должен был заметить это сам — я предполагал, что руководство было бы безупречным! Это очень ново для этого.
Ответ №3:
Вы объявили переменную с именем dcbSerialParams
, но ссылаетесь на нее как dcbSerial
DCB dcbSerialParams = {0};
dcbSerial.DCBlength=sizeof(dcbSerialParams);