|
本文将就AM335x Linux系统中,GPIO的三种调用方法进行说明,1)即内核空间中使用GPIO;2)用户空间C代码方式使用GPIO;3)用户空间中shell方式使用GPIO。其中shell方式我们之前的文档介绍过,这里将着重介绍1)和2)两种方式。
内核空间中调用GPIO
请求GPIO
[mw_shl_code=c,true]err = gpio_request(30, "sample_name");[/mw_shl_code]
设置GPIO方向
[mw_shl_code=c,true]gpio_direction_input(30);[/mw_shl_code]
GPIO30为输出并且置高
[mw_shl_code=c,true]gpio_direction_output(30, 1);[/mw_shl_code]
导出GPIO30到sysfs用户空间
[mw_shl_code=c,true]gpio_export(30, true);[/mw_shl_code]
读GPIO30
[mw_shl_code=c,true]gpio_get_value(30);[/mw_shl_code]
用户空间中shell方式调用GPIO
请参考:
http://bbs.myir-tech.com/thread-6195-1-1.html
用户空间中C代码方式调用GPIO
[mw_shl_code=c,true] // echo "out" > /sys/class/gpio/gpio30/direction
pFile = fopen(“/sys/class/gpio/gpio30/direction”, “w”);
fwrite(“out”, 1, sizeof(“out”), pFile);
fclose(pFile);
// echo 1 > /sys/class/gpio/gpio30/value
pFile = fopen(“/sys/class/gpio/gpio30/value”, “w”);
fwrite(“1”, 1, sizeof(“1”)-1, pFile);
// cat /sys/class/gpio/gpio30/value
fread(myArray, 1, 1, pFile);
fclose(pFile);[/mw_shl_code]
|
|