昇润CC2640 SDK应用入门教程6
发布日期:2017.07.07 浏览次数:317
1.SPI介绍
SPI是串行外设接口(Serial Peripheral Interface)的缩写,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,它们是SDI(数据输入)、SDO(数据输出)、SCLK(时钟)、CS(片选)。
2.CC2640R2F 框架图
3.使用介绍
首先,我们打开工程,默认路径:C:TTC_BLE_CC2640_R2_SDK3.1.0TTC_CC2640_R2_SDKexamples tosCC2640R2_LAUNCHXLlestackSDK irtosiar
![](/uploads/allimg/170707/3-1FFG646422U.png)
切记IAR版本必须在 7.8.0以上
查看版本在IAR -> 工具栏 -> Help -> About -> Product Info...
![](/uploads/allimg/170707/3-1FFG64ACa.png)
确定工程没问题了,我们接下来就添加SPI驱动,首先,我们要先了解下SDK里的SPI驱动有哪些接口供我们使用,如图:
![](/uploads/allimg/170707/3-1FFG64G2916.png)
在TTCDriverSPI.h此头文件中我们需要了解SPI参数结构体,如图:
![](/uploads/allimg/170707/3-1FFG64H51X.png)
![](/uploads/allimg/170707/3-1FFG64I6357.png)
接下来我们就要在工作中添加新文档,用作SPI的初始化和操作处理,那我们这里就拿 LIS3DH 这颗外设来跟 SPI做通讯处理。
首先,我们在Application 用户应用文件夹里新建Lis3dh.c 及 Lis3dh.文件夹。
![](/uploads/allimg/170707/3-1FFG64JUI.png)
保存文档默认路径:C:TTC_BLE_CC2640_R2_SDK3.1.0TTC_CC2640_R2_SDKexamples tosCC2640R2_LAUNCHXLlestackSDKsrcapp
开始编写Lis3dh.c 文档,添加头文件
![](/uploads/allimg/170707/3-1FFG64Kc45.png)
初始化 Lis3dh 函数及配置
![](/uploads/allimg/170707/3-1FFG64Q0495.png)
初始化 SPI参数后需要在 Startup 文件夹里打开 TTCSDKBoard.c -> TTCSDKBoard6ID.c 文档添加 SPI 用户定义参数,如图:
![](/uploads/allimg/170707/3-1FFG64R1434.png)
相应的 TTCSDKBoard.h里添加定义脚位
![](/uploads/allimg/170707/3-1FFG64S61U.png)
配置宏定义参数
![](/uploads/allimg/170707/3-1FFG64T5523.png)
SPI的初始化步骤初始化完成了,那接下来就是针对外设Lis3dh的初始化,如下图,我们需要针对 Lis3dh的规格书说明来初始化 Lis3dh的参数,然后定时一个定时任务来采用Lis3dh的数据。
![](/uploads/allimg/170707/3-1FFG64Z1128.png)
初始化完后,那肯定接下来就是针对定时任务对Lis3dh的数据做处理,如下图:
到了这一步骤,SPI定时获取Lis3dh数据基本完成,但是如果马上进行编译肯定很多错误,毕竟针对的定义缓存和部分定义并未声明定义,那我们接下来就是针对构思的任务对所用到的缓存做最后的声明和定义,如图:
![](/uploads/allimg/170707/3-1FFG649303R.png)
好了,执行到这步时整体框架都搭好了,剩下的就是在线程中添加应用初始化及事件处理,如下图:
![](/uploads/allimg/170707/3-1FFGA000631.png)
到了这步时已经完成了99%的操作了,剩下的就是见证结果的时刻,那我们必须下载程序到模块上才能验证,首先先下载Stack,然后再下载App应用程序,如图:
![](/uploads/allimg/170707/3-1FFGA01ON.png)
下载完毕后,我们就根据相关的脚位来接线,如下图:
![](/uploads/allimg/170707/3-1FFGA0305a.png)
然后点击运行,执行结果如下波形:
![](/uploads/allimg/170707/3-1FFGA046364.png)
![](/uploads/allimg/170707/3-1FFGA100a4.png)
![](/uploads/allimg/170707/3-1FFGA11MK.png)