
QNX 운영 체제에서 USB-직렬 장치를 설정하여 다음과 같은 코드에서 사용하는 방법은 무엇입니까 open("/dev/serusb1")
? 저는 VMWare를 사용하여 QNX를 호스팅하고 있습니다. USB 어댑터가 제대로 연결되었는지 확인하는 방법은 무엇입니까?
답변1
실행해야 하는 드라이버는 devc-serusb라고 하며, 일단 실행되면 하드웨어가 있으면 /dev에 /dev/serusbx 장치가 표시되어야 합니다. (여기서 x는 장치 인덱스입니다)
USB-직렬 장치를 실제 상자에 연결한 후 실행 중인 QNX Vmware 이미지에 연결되었는지 확인하고 드라이버를 실행한 후 장치가 실제로 /dev에 표시되는지 확인하세요.
다음 단계는 명령줄에서 작동하는지 확인하는 것입니다. Serusb 장치의 다른 쪽 끝을 데이터를 보내는 장치에 연결하십시오. 그런 다음 명령줄에서 다음을 실행합니다.
# cat /dev/serusb1
들어오는 데이터가 표시되지 않으면 전송 속도나 기타 직렬 매개변수가 꺼져 있을 수 있습니다. stty 명령 문서를 살펴보고 매개변수를 올바르게 설정하세요. 115200 8-n-1에서 실행 중인 경우 다음과 같이 할 수 있습니다.
# stty baud=115200 < /dev/serusb1
명령줄에서 장치를 'cat'할 때 표시할 데이터를 얻을 수 있다면 다음과 같이 프로그램 내에서 장치를 열고 파일인 것처럼 읽을 준비가 된 것입니다.
int main(int argc, char* argv[]) {
int fd=-1;
char ch;
fd = open("/dev/serusb1", O_RDONLY);
while(read(fd, ch, 1) > 0) {
printf("%c", ch);
}
}