2016-02-14 2 views
1

C++ Я пишу программу для того чтобы контролировать контакты GPIO на моем raspberryPi с C++ и имеющим трудности я нахожусь в состоянии экспортировать с помощью следующего кода:GPIO Pins RaspberryPi Использование

char pathString[256]; 
sprintf(pathString, "%s/export", "/sys/class/gpio"); 
ofstream exporterFile(pathString); 
exporterFile << pinNumber; 
exporterFile.close() 

Это работает успешно экспортирует штифт, но это не устанавливает направление:

sprintf(pathString, "%sgpio%d/direction", "/sys/class/gpio", pinNumber); 
ofstream directionFile(pathString); 
directionFile << pinDirection; 
directionFile.close(); 

по какой-то причине я не могу писать в файл, возможно, я не имею право привилегии. Мой вопрос в том, что проблема, и если да, то как мне ее решить, чтобы я мог записать в файл.

Заранее спасибо

+0

Какая операционная система? Linux, какое ядро? – user3528438

+0

Raspbian wheezy – user2766296

ответ

3

Вы должны быть суперпользователем или запустить программу с Судом для того, чтобы использовать контакты GPIO. Однако я бы рекомендовал использовать библиотеку электропроводки http://wiringpi.com/ для доступа к GPIO из c/C++. Он прост в использовании и немного повышает уровень абстракции. Он также позволяет вам делать что-то вроде PWM. Программу, использующую wiringpi, также нужно запускать с помощью sudo.

+0

Спасибо, я никогда не понимал, что это так просто, все, что мне нужно было сделать, это ввести: 'sudo./ProgramName' большое спасибо! – user2766296