查看: 2199|回复: 1

[原创] 【GoRK3288】3.GPIO操作方法(1)

[复制链接]
  • TA的每日心情
    奋斗
    2022-9-16 05:52
  • 签到天数: 1368 天

    连续签到: 1 天

    [LV.10]以坛为家III

    发表于 2015-5-20 08:13:08 | 显示全部楼层 |阅读模式
    分享到:
         从这一节开始,正式讲述 GoRK3288 的使用方法。请先在https://github.com/tjCFeng/GoRK3288下载 GoRK3288 开源库


        经过前两节的铺垫,大概了解了Go语言的结构,并且在开发板上每个功能都对应 GoRK3288 库中的一个文件,比如GPIO功能就是通过GPIO.go文件来实现的。而所有的示例代码都在上一层文件夹的Test.go中。
        先来看Test.go中的第一段代码

    1.png

        func main() {} 函数前面的部分不用再重复叙述,从这个函数开始,是真正对 GoRK3288库 的调用。
        调用的格式为“包名 . 类名”。当然Go语言中没有类,类似的东西其实就是结构体。
        第一句代码 defer RK3288.FreeRK3288() 。defer的作用是无论程序是否正常退出还是出现异常报错,都会被执行,和C++的 try {} finally {}是一样的。而RK3288这个类相当于一个单例,可以直接引用而不需要预先创建。也就是说首先写上这句代码可以保证内部资源被释放,不用太纠结,因为RK3288这个类是不被用户直接使用的,而且也许以后改进代码会将这句去掉。

        来看正文,CreateGPIO这句代码,它的作用就是开始初始化一个指定的GPIO口来进行操作。指定的这个GPIO口根据参数就是GPIO8A1。这个IO口大家应该很熟悉了,就是板子上的WorkLED连接的IO口,输出低电平亮,高电平灭。
        初始化这个IO口后有两个返回值,一个是实例(变量名P8A1),一个是是否成功标志(变量名ok)。 如果OK为true,那么说明初始化成功,可以继续后面的操作了。
        Flip()这个方法,是对当前电平的反转,如果为高就变低,如果是低就置高。每一次运行程序时都会改变WorkLED的状态,效果如下

    2.jpg
        开发板上电后WorkLED是亮的

    3.jpg
        当执行程序后,WorkLED会灭掉。再次运行程序,WorkLED又会亮起。

        后面的Print可以把当前这个GPIO的状态打印出来,通过GetData()方法获得,高电平为true,低电平为false。
        最后在不使用这个GPIO的时候要把它释放掉,FreeGPIO。

        就这么几句代码就可以控制一个IO口了,是不是有点不太靠谱?确实,相当不靠谱,因为这个口比较特殊,本身就是作为GPIO来使用的,所有一些相关的寄存器设置已经被驱动程序实现了,所以才能直接控制高低电平。如果一个GPIO口没有被预先定义好或者被其他功能复用了,那么该怎样配置呢?咱们下一节再讲。

       
    GoRK3288库请在https://github.com/tjCFeng/GoRK3288下载。

    【GoRK3288】1.Rockchip RK3288, GO!GO!!GO!!!
    https://www.cirmall.com/bbs/thread-41838-1-1.html
    【GoRK3288】2.Go语法简要说明及GoRK3288结构
    https://www.cirmall.com/bbs/thread-41847-1-1.html
    【GoRK3288】4.GPIO操作方法(2)
    https://www.cirmall.com/bbs/thread-41882-1-1.html
    【GoRK3288】5.PWM操作方法
    https://www.cirmall.com/bbs/thread-41894-1-1.html
    【GoRK3288】6.TSADC操作方法
    https://www.cirmall.com/bbs/thread-41926-1-1.html
    【GoRK3288】7.WatchDog操作方法
    https://www.cirmall.com/bbs/thread-41944-1-1.html


    回复

    使用道具 举报

  • TA的每日心情
    奋斗
    2016-8-15 09:28
  • 签到天数: 222 天

    连续签到: 1 天

    [LV.7]常住居民III

    发表于 2015-5-20 09:44:10 | 显示全部楼层
    楼主太强大了!
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /2 下一条



    手机版|小黑屋|与非网

    GMT+8, 2024-4-27 03:20 , Processed in 0.126368 second(s), 18 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.