Biu~笔记:高通蓝牙ADK(8)--SPI使用

        Biu~小伙伴们大家好, 续上回分解。我们了解了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 一次完成这些操作,例如以下这样,看上去就简洁很多。

 



       以上是本期博文的全部内容,如有疑问请在博文下方评论留言,或者有什么想了解的都可以留言,我会尽量安排上(o´ω`o)و。谢谢大家浏览,我们下期再见。

 

 

多看文档,多上官网

多看文档,多上官网

多看文档,多上官网

  

★博文内容均由个人提供,与平台无关,如有违法或侵权,请与网站管理员联系。

★文明上网,请理性发言。内容一周内被举报5次,发文人进小黑屋喔~

评论

realhjt

realhjt

2021年7月23日
可以给官方的SPI DemoCode嘛?jtrealme@foxmail.com 非常感谢
Biu~

Biu~

2020年11月4日
官网好像是没有了,想要发邮件给我们吧
Gavin

Gavin

2020年11月2日
可以告知官方的例子 在哪嗎?
Biu~

Biu~

2020年10月28日
不对,uart很简单,官方有个例子,照着搬就好了
Biu~

Biu~

2020年10月27日
ok,安排
方老板

方老板

2020年9月28日
小编小编 能出一篇UART的吗