경고:'serialAttr'는 이 기능에서 uninitialized 사용됩니다
1225 단어 Bug
int main_form::markSerialPort()
{
int fd=m_fd;
termios serialAttr;
serialAttr.c_cflag |= PARENB|CMSPAR;
serialAttr.c_cflag &= ~PARODD;
if(tcsetattr(fd, TCSANOW, &serialAttr) !=0) //
{
perror("serial error");
return -1;
}
return 0;
}
내 위치 검사에 이 문제가 생겼는데, 친절한 팔의 Open Serial Port () 에는 문제가 없었다.
int main_form::openSerialPort()
{
int fd = -1;
const char *devName = "/dev/ttyUSB0";
fd = ::open(devName, O_RDWR|O_NONBLOCK);
if (fd < 0) {
return -1;
}
termios serialAttr;
memset(&serialAttr, 0, sizeof serialAttr);
serialAttr.c_iflag = IGNPAR;
serialAttr.c_cflag = B9600 | HUPCL | CS8 | CREAD | CLOCAL;
serialAttr.c_cc[VMIN] = 0;
if (tcsetattr(fd, TCSANOW, &serialAttr) != 0) {
return -1;
}
return fd;
}
그들 두 사람의 지위 차이는 성명 안에 있다
private:
int openSerialPort();
private slots:
int markSerialPort();
하나는private이고 하나는privateslots이다.해결 기록:
일
private:
int openSerialPort();
int m_timeId;
int markSerialPort();
int spaceSerialPort();
실패!!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
오류 수정 소프트웨어에 의한 연결 abort: socket write error텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.