NanoPi 2】创享日记(9)Debian下GPIO的使用(二)

  • caolidong
  • LV3工程师
  • |      2016-01-08 18:15:32
  • 浏览量 1422
  • 回复:2

本次内容

有了上篇DebianGPIO调用的讲解,接下来就可以将其应用在程序中了,本篇实现了在Debian下对改进后小车的驱动。

 

工具:

        NanoPi2,万用表,小车,数据线,移动电源。

 

过程笔记:

       在linux系统中,对文件的操作是通过fcntl.h文件中的open()close()read()write()函数完成的,它们的作用:

              open():打开文件。

              close():关闭文件。

              read():以字符串形式读取文件内容。

              write():以字符串形式写入文件。

       因而,首先需要在我的测试程序car.c中包含fcntl.h头文件,并定义我要操作的gpio文件:

       NanoPi 2】创享日记(9)Debian下GPIO的使用(二)


       还需要一个初始化函数,来使能我用到的这些端口,上次裸机测试用到的端口是:

        NanoPi 2】创享日记(9)Debian下GPIO的使用(二)


        这次依旧用这些:

        NanoPi 2】创享日记(9)Debian下GPIO的使用(二)




open()函数有3个参数,第一个是要打开的文件,第二个是对打开文件的操作类型,第三个是打开权限,在这里,我要通过export文件使能用到的4个端口,对文件的操作类型是只读,将打开权限设置为“0666”。

对于文件的权限,在linux中由用户、群组、其他几种等级,每个等级都有读权限、写权限、执行权限几种。可读用二进制100表示,可写用二进制010表示,可执行用001表示。在这个实例中要将文件设置为可读、可写,也就是100+010,即110,将二进制110转化为十进制即为6,关于文件的权限设置,由4位数表示,0666就是将用户、群组、其他的权限都设置为可读、可写。否则会在读写exportdirectionvalue文件时就会出现错误。

 还需要将对文件的操作,封装成一个函数,便于在main函数中调用:

        NanoPi 2】创享日记(9)Debian下GPIO的使用(二)



        gpio()函数会从调用它的函数中得到文件路径和要写入的字符串两个参数,执行完后,关闭文件。接下来是主函数:

        NanoPi 2】创享日记(9)Debian下GPIO的使用(二)




        在初始化成功后,会提示“小车开始运动”,通过for循环来延时,并通过gpio_set函数来设置GPIO的高低电平。

        实际操作下,在终端执行:

        NanoPi 2】创享日记(9)Debian下GPIO的使用(二)
        NanoPi 2】创享日记(9)Debian下GPIO的使用(二)


  • 0
  • 收藏
  • 举报
  • 分享
我来回复

登录后可评论,请 登录注册

所有回答 数量:2
caolidong 2016-01-08
谢谢,您过奖了,,难题才刚刚开始,这只是系统下IO的使用。
0   回复
举报
发布
benten 2016-01-08
楼主威武,这么快就用linux搞定了,这段小视频太好爱啦
0   回复
举报
发布
x
收藏成功!点击 我的收藏 查看收藏的全部帖子