2014-10-11 2 views
2

우분투에서 시리얼 포트 이름을 찾는 데 문제가 있습니다.Qt - 우분투의 시리얼 포트 이름

serial->setPortName("com3"); 

을하지만 우분투에이 코드를 컴파일 할 때,이 코드를 사용할 수 없습니다 : 아시다시피, Windows에서 직렬 포트를 읽기 위해, 우리는 예를 들어,이 코드를 사용할 수 있습니다

serial->setPortName("/dev/ttyACM0"); 

을 내 직렬 포트 이름 ttyACM0 것을 알고 나는이 명령을 실행하여 데이터를 읽을 수 있습니다

cat /dev/ttyACM0 

을하지만, 왜 내 코드에서이 이름을 사용할 수 없습니다? 어떻게해야합니까?

+0

call err orString을 사용하여 문제를 확인한 다음 QSerialPortInfo :: availablePorts를 사용하여 시스템의 모든 포트 목록을 가져 오십시오. – Chernobyl

+0

QSerialPortInfo :: availablePorts도 사용합니다. 하지만 작동하지 않습니다! Windows에서는 완벽하게 작동하지만 여기서는 작동하지 않습니다! –

+0

직렬 포트를 열 수있는 권한이 있습니까? – Nejat

답변

0

사용 :

serial->setPortName("ttyACM0"); 
+0

이전에 사용했는데 작동하지 않습니다. –

+0

'QSerialPortInfo :: availablePorts()'가 그 포트에 대해 반환하는 이름은 무엇입니까? 내가 'ttyACM0'에게 말한 것처럼 –

+0

. 내 직렬 포트 이름은 ttyACM0이라고 확신하지만 실제로 설정하지 못하는 이유를 모르겠다 !!! –

3

일반 사용자에 대한 권한을 얻기 위해, 당신의 시스템 관리자는 USB를 통해 에뮬레이션 같은 시리얼 포트의 담당 그룹에 추가 얻을하시기 바랍니다.

tty, uucp 또는 무엇인가입니다. 그것은 분포 분포 다양하지만 당신은 쉽게 다음 명령을 실행하여이 문제를 확인할 수 있습니다

sudo usermod -a -G group username 

을하지 마십시오 :

ls -l /dev/ttyACM0 

그런 다음 그룹 열을 확인하고 시스템 관리자가이 작업을 수행 할 수를은 다음과 같이 다른 사람에게 전역 쓰기 권한을 부여하여 보안 취약성을 도입합니다.

sudo chmod 666 /dev/ttyACM0