找回密码
 立即注册

使用微信账号登录

只需一步,快速开始

高通蓝牙ADK - SPI使用

2020-8-14 22:10| 发布者: 大大通| 查看: 2467| 评论: 0|来自: 大大通

摘要: Biu~小伙伴们大家好, 续上回分解。我们了解了I2C的使用,细心的小伙伴已经发现了,在bitserial这个功能里面还能使用SPI。是滴,bitserial就是用来使用I2C和SPI的,而这两者的使用,大同小异。所以,如果想了解清楚 ...

小伙伴们大家好, 续上回分解。我们了解了I2C的使用,细心的小伙伴已经发现了,在bitserial这个功能里面还能使用SPI。是滴,bitserial就是用来使用I2C和SPI的,而这两者的使用,大同小异。所以,如果想了解清楚点的,可以到上一篇看看I2C的,这一篇就补充说明一下SPI的使用。

在默认代码使中,是有两个传感器的驱动代码的,分别是加速度传感器adxl362和接近传感器vncl3020。那因为封装等各种原因,客户一般选自己想要的去替换他。我们AITg的QCC系列开发板也集成了几颗传感器,并完成驱动,有兴趣可以点击连接前往购买体验(AITg高通蓝牙开发板),当然您有别的心仪对象,也可以参考默认参考代码去完成驱动。这里小编也以默认参考代码来讲解如何使用SPI驱动。

我们看到adxl362.c文件中的appAccelerometerClientRegister这是为加速度传感器注册的地方,就是给传感器配置使能,这里和上篇的差不多,主要讲bitserial的几个参数

首先模式肯定要选BITSERIAL_MODE_SPI_MASTER ,再是时钟频率,小编亲测时钟频率可到4Mhz,往下的几个配置如果不是特殊的就不用管,但要是是特殊的看一下注释都能懂了。接下一个重要的参数——flags,大家都知道SPI并不是只有一种通讯模式,为了面对不同的通讯模式,不同的信号传输需求,就需要按照枚举的参数去修改这个标志位,多个参数就用 ‘|’ 符号与起来。

再往下就是申请block,设备都是I2C就可以用同一个block,如果一个是I2C,一个是SPI,那就要分开用两个block来使用,按handle来区分就好了。中断注册和响应都和I2C的一样,可回看上一篇。

关于读写也是和I2C一样的,这里不多讲,在这就讲讲另外一个函数BitserialTransfer这个也是用作读写,和BitserialReadBitserialWrite不一样,这是一个函数完成读写操作,有点像以前ADK的I2C函数。大家都知道读的时候,是要先写一个寄存器地址,再执行读,默认参考代码就是将这两个动作用BitserialReadBitserialWrite分别执行,这是在写的时候,用BITSERIAL_FLAG_NO_STOP 这个标志去保持本次通讯不结束,而BitserialTransfer 一次完成这些操作,例如以下这样,看上去就简洁很多。

 


来源:https://www.wpgdadatong.com/cn/blog/detail?BID=B1761
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!


路过

雷人

握手

鲜花

鸡蛋

相关阅读

最新评论

小黑屋|手机版|我爱蓝牙网 - 52Bluetooth

GMT+8, 2024-4-27 08:18 , Processed in 0.085485 second(s), 16 queries , Gzip On, MemCached On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

返回顶部