完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
` 请先在https://github.com/tjCFeng/GoRK3288下载 GoRK3288 开源库。 Rockchip RK3288中有好多ADC,HS-ADC(High Speed ADC)、TS-ADC(Temperature Sensor ADC)。其中HS-ADC 主要用于传输数据,例如手册中说的GPS数据等;而TS-ADC顾名思义,就是采集各种温度传感器的数据了。 咱们先从简单的开始,所以想办法使用TS-ADC取得各种温度。 由于温度传感器是集成在CPU内部的,所以本次试验不需要使用任何外部的硬件模块或开发板,直接通过程序来获取结果。 来看看示例程序吧 这次的程序更简单,简单到3条语句就够了。 不过是不是这个代码和C语言差别有些大了?这里面其实有两个要点,前面也曾提到过:单例模式和多返回值。 1.单例模式: 在设计模式中有一种叫单例模式,它的作用就是让某一个类在程序运行期间内只被创建一次,即使被重复创建了, 那么返回的也是已经存在的实例,而不再重新创建。不要被那么高深的名字唬住,使用中理解为全局变量就行了。一般的静态语言中这个方法会在构造函数中实现,然而Go语言是个特例,它没有构造函数,所以呢我只能用个普通的函数来代替构造函数了。 至于为什么非要把TSADC类作为单例来使用,这是因为在RK3288中,TSADC虽然有四个通道,但是它们被控制的寄存器只有一组,不能对每个通道分别控制,也就是要启动一起启动,要停止一起停止。为了避免多个实例化之间造成操作上的冲突,所以我认为单例模式更适合TSADC。 2.多返回值: 多返回值是Go语言的一大特色,其他的静态语言是不具备的。而且对于TSADC来说,四个通道的数据是一起开始采集并且可以同时得到结果,而不是一个一个的完成,所以多返回值使用起来可能更方便一些。其实这么写也是有意突出语言特色,而且这个还是在写这一节之前刚刚改成这样的,原来的方法是标准的传递参数来获取指定结果。这两种方法无所谓好坏,如果使用起来不习惯的话可以增加一个指定通道的函数。 又说了这么多,回到正题。代码中RK3288.ITSADC()就是获得TS-ADC类的实例,如果没有其他地方再需要使用这个实例的话,后面可以直接调用方法函数GetData()。 再看这个函数的前半部分,_, Data, _, _是保存结果的变量,_部分为不关心的结果,可以不保存值,但是必须被占位。 整条语句的意思为获取TS-ADC第1通道的结果,获取四个通道的结果应该写为 Data1, Data2, Data3, Data4 := RK3288.ITSADC().GetData() Go语言是不是很有意思? 后面的就简单了,TS-ADC是12位的,Data保存的结果是ADC的数据, 使用GetTemperature函数来将这个数据转化为温度值就是最终想要的结果了。 实际上,这个数值和温度的变化不是线性的,所以手册里给出了一个映射表 根据这个映射表进行换算可以得到温度,具体的方法在TSADC.go中,感兴趣的可以看一下。 运行程序,看看结果 |
|
相关推荐
|
|
只有小组成员才能发言,加入小组>>
1023 浏览 0 评论
【KV260视觉入门套件试用体验】四、KV260 视觉入门套件和固件更新
1595 浏览 0 评论
【KV260视觉入门套件试用体验】Vitis AI Library体验之OCR识别
1194 浏览 0 评论
【KV260视觉入门套件试用体验】Vitis AI 通过迁移学习训练自定义模型
1693 浏览 0 评论
【KV260视觉入门套件试用体验】KV260系列之Petalinux镜像+Resnet 50探索
1358 浏览 0 评论
【AMD KV260视觉入门开发套件试用】4、简单几步体验ubuntu 20.04.3 LTS运行人员检测应用
1649浏览 1评论
2022浏览 1评论
【KV260视觉入门套件试用体验】老刘记事儿KV260初体验之Micro-SD选型提速研究(三)
884浏览 1评论
【KV260视觉入门套件试用体验】KV260部署yolov3实现车辆和行人检测
2551浏览 1评论
【KV260视觉入门套件试用体验】基于KV260的人脸识别的实现与展示
890浏览 1评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-22 16:23 , Processed in 0.883938 second(s), Total 68, Slave 52 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号