马甲一号 发表于 2013-4-24 00:32:03

用C语言控制cubieboard上的绿灯


终于在这台论坛注册成功了,之前逛了几次,学习到了不少知道,其中包括GPIO。。。

今天用C语言写了一个小程序,控制板中间的那个绿灯一亮一灭,像呼吸一下。。。

话不多说,直接上代码,给有需要的朋友参考一下。有关 GPIO的更多知识,如什么是GPIO,怎么配置Script.bin,,,请参考论坛中其他文章。#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <string.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <sys/ioctl.h>
#include <sys/mman.h>
#include <sys/time.h>

/**
*功能 Cubieboard Linux 下用C语言控制 GPIO ,实现对板载绿灯的控制
* 此代码只要稍微更改一下PIN口的名称也可以控制其他的设备,如继电器,步进电机。。。
* 更多知道请用关键字 cubieboard,gpio,script.bin进行搜索

*博客 http://hi.baidu.com/smsspy/
*/

int main()
{
int fd;
int i;

//如果不存在sun4i-gpio,那是驱动没安装好,请自行GOOGLE一下。

fd = open("/sys/devices/virtual/misc/sun4i-gpio/pin/ph20",O_RDWR | O_NOCTTY);
if(fd < 0)
return 0;

//60个周期,一个周期一个“呼吸”动作

for(i=0; i<60; i++)
{
//发送一个1,高电平,灯亮
write(fd,"1", 1);
sleep(1);

//发送一个0,低电平,灯灭
write(fd,"0", 1);
sleep(1);
}

close(fd);

return 0;
}将上面的代码保存为 led.c
然后 gcc -o led led.c
接着 ./led

看效果吧。


马甲一号 发表于 2013-4-25 00:16:48

最新消息,我已经成功点亮外接LED,驱动步进电机,明天继续搞继电器,减速电机,完成后,上一个超级大礼包教程。:lol:lol。

echiz 发表于 2013-4-25 01:08:56

目前这个好像已经不好用了。leds挪到/sys/class/leds下面了

hipboi 发表于 2013-4-25 12:39:40

echiz 发表于 2013-4-25 01:08 static/image/common/back.gif
目前这个好像已经不好用了。leds挪到/sys/class/leds下面了

不是的,这个是用gpio的,楼主自己外接了一个led灯。楼主不上照片,让人误解了。

echiz 发表于 2013-4-26 18:51:06

hipboi 发表于 2013-4-25 12:39 static/image/common/back.gif
不是的,这个是用gpio的,楼主自己外接了一个led灯。楼主不上照片,让人误解了。 ...

GPIO那里面哪有ph20啊?
他这个是老驱动而已。

hipboi 发表于 2013-4-26 22:14:57

echiz 发表于 2013-4-26 18:51 static/image/common/back.gif
GPIO那里面哪有ph20啊?
他这个是老驱动而已。

仔细看了一下,确实是老驱动。白加分了。

echiz 发表于 2013-5-1 01:01:00

;P

cubieplayer 发表于 2013-5-2 05:00:47

处女贴给你了!

醉月 发表于 2013-7-25 20:42:28

楼主的代码,今天表示直接抄过去了,然后jni调用后,在android上也可以控制GPIO口呢:D

寒寒 发表于 2013-8-31 17:59:41

mark一下
页: [1] 2
查看完整版本: 用C语言控制cubieboard上的绿灯