完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
从这一节开始,正式讲述 GoRK3288 的使用方法。请先在https://github.com/tjCFeng/GoRK3288下载 GoRK3288 开源库 。 经过前两节的铺垫,大概了解了Go语言的结构,并且在开发板上每个功能都对应 GoRK3288 库中的一个文件,比如GPIO功能就是通过GPIO.go文件来实现的。而所有的示例代码都在上一层文件夹的Test.go中。 先来看Test.go中的第一段代码 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的状态,效果如下 开发板上电后WorkLED是亮的 当执行程序后,WorkLED会灭掉。再次运行程序,WorkLED又会亮起。 后面的Print可以把当前这个GPIO的状态打印出来,通过GetData()方法获得,高电平为true,低电平为false。 最后在不使用这个GPIO的时候要把它释放掉,FreeGPIO。 就这么几句代码就可以控制一个IO口了,是不是有点不太靠谱?确实,相当不靠谱,因为这个口比较特殊,本身就是作为GPIO来使用的,所有相关的寄存器设置已经被驱动程序实现了,所以才能直接控制高低电平。如果一个GPIO口没有被预先定义好或者被其他功能复用了,那么该怎样配置呢?咱们下一节再讲。 GoRK3288库请在https://github.com/tjCFeng/GoRK3288下载。 |
|
相关推荐
2个回答
|
|
连载分享我喜欢 多谢大湿
最佳答案
|
|
|
|
|
|
|
|
只有小组成员才能发言,加入小组>>
909 浏览 0 评论
【KV260视觉入门套件试用体验】四、KV260 视觉入门套件和固件更新
1487 浏览 0 评论
【KV260视觉入门套件试用体验】Vitis AI Library体验之OCR识别
1128 浏览 0 评论
【KV260视觉入门套件试用体验】Vitis AI 通过迁移学习训练自定义模型
1503 浏览 0 评论
【KV260视觉入门套件试用体验】KV260系列之Petalinux镜像+Resnet 50探索
1155 浏览 0 评论
【AMD KV260视觉入门开发套件试用】4、简单几步体验ubuntu 20.04.3 LTS运行人员检测应用
1622浏览 1评论
955浏览 1评论
【KV260视觉入门套件试用体验】老刘记事儿KV260初体验之Micro-SD选型提速研究(三)
842浏览 1评论
【KV260视觉入门套件试用体验】KV260部署yolov3实现车辆和行人检测
2465浏览 1评论
【KV260视觉入门套件试用体验】基于KV260的人脸识别的实现与展示
833浏览 1评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-25 08:04 , Processed in 0.621926 second(s), Total 72, Slave 65 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号