这是NVIDIA官方Jetson GPIO Python库到C ++的非官方移植。
NVIDIA’s official Jetson GPIO Python library: https://github.com/NVIDIA/jetson-gpio
该库提供与NVIDIA Jetson GPIO Python库几乎相同的API
**但是它不支持NVIDIA原始版本的所有功能 **
cd JetsonGPIO/build make all sudo make install
为了使用Jetson GPIO库,必须具有正确的用户权限/组 首先设置。 或者,您必须在具有root权限的情况下运行程序。
sudo groupadd -f -r gpio sudo usermod -a -G gpio your_user_name
sudo cp JetsonGPIO/99-gpio.rules /etc/udev/rules.d/
sudo udevadm control --reload-rules && sudo udevadm trigger
该库提供与NVIDIA Jetson GPIO Python库几乎相同的API。
包含jetsonGPIO,可引用:
#include <JetsonGPIO>
所有公共API在名称空间“ GPIO”中声明。 如果要缩短代码,可以使用 :
using namespace GPIO; // optional
编译程序使用:
g++ -o your_program_name your_source_code.cpp -lJetsonGPIO
Jetson GPIO库提供了四种给I / O引脚编号的方法。 前两个对应于RPi.GPIO库提供的模式,即BOARD和BCM,分别表示40引脚GPIO接头连接器的引脚号和Broadcom SoC GPIO编号。 其余两种模式,CVM和TEGRA_SOC使用字符串代替数字,分别对应于CVM / CVB连接器和Tegra SoC上的信号名称 .
要指定正在使用哪种模式(强制性),请使用以下函数调用 :
GPIO::setmode(GPIO::BOARD); // or GPIO::setmode(GPIO::BCM); // or GPIO::setmode(GPIO::CVM); // or GPIO::setmode(GPIO::TEGRA_SOC);
要检查已设置的模式:
GPIO::NumberingModes mode = GPIO::getmode();
设置GPIO模式
GPIO::setmode(GPIO::BOARD)
在用作输入或输出之前,必须先设置GPIO通道。 要将通道配置为输入:
GPIO::setup(channel, GPIO::IN); // channel must be int or std::string
设置为输出:
GPIO::setup(channel, GPIO::OUT);
可以为输出通道指定初始值:
GPIO::setup(channel, GPIO::OUT, GPIO::HIGH);
定义GPIO为输入:
int value = GPIO::input(channel);
定义接口为输出:
GPIO::output(channel, state);
在程序结束时,最好清理通道,以便将所有引脚设置为默认状态:
GPIO::cleanup();
清理单个通道:
GPIO::cleanup(chan1); // cleanup only chan1
GPIO::Directions direction = GPIO::gpio_function(channel);
示例代码请见JetsonGPIO-master\samples\simple_out.cpp,可接led灯实现灯闪。