由浅入深,蓝牙4.0/BLE协议栈开发攻略大全(1)
件。
注:如果使用的是Win8以上的系统建议使用IAR for 8051 8.30.2版本的软件,安装方式和8.20.2是一样的。
下面我们就开始安装这个版本的软件。
1.3 IAR安装
在配套的文件目录下找到如下文件。
安装IAR,然后安装Dongle驱动。
到这步,说明IAR已经安装完成,下面开始进行和谐,你懂得!
解压此文件夹,得到如下文件:
将解压得到的文件全部复制到IAR安装目录(如下图),直接覆盖原始文件。
这样IAR的安装就完成了。先开启软件来体验一下安装成果吧!
1.4 安装烧写软件
至此,我们目前需要用到的开发软件就安装完成了。
第二节 BLE快速体验
经过前面的安装,我们的开发环境已经搭建好了,现在我们先来体验一下BLE,给自己点动力,comeon!使用SmartRFFlash Programmer烧写从机固件:CC2540_SmartRF_SimpleBLEPeripheral.hex,烧写方法见SmartRF Flash Programmer的使用章节。
协议栈默认自带了一些已经编译好的文件,可以直接烧写,具体路径如下图:
从机固件路径:
读取设备的IEEE地址:
烧写完成后,如果你有支持Ble的手机或平板就可以搜索到设备了,或者使用本公司开发的USBDongle(抓包固件或HostTestRelease固件)也可以搜索到设备,具体的使用可以阅读相应的产品使用手册,我这里用andriod平板搜索:
通过MAC地址可以知道我们的设备已经在正常的广播了,我这里使用本公司开发的andriod端软件TruthBlue可以正常搜索到我们的设备。如果用户手上有支持BLE的设备并且系统在andriod4.3以上也可以安装我们的这个软件。
连接上设备后如图,这里我们不要求大家能够看懂这些,这里仅仅是为了体验,后面的章节中我们会详细的讲述这些知识。
第三节 创建IAR工程-点亮LED
经过前面的准备工作,这章开始我们开始正式的开发过程。
这个教程是为有一定51基础和C基础的人准备的,如果读者这方面还欠缺,请找相关方面的书籍恶补一下。CC2540的本质就是一个8051的单片机,所以我们裸机开发就可以作为一个51单片机来开发,裸机开发的目的是为了让大家熟悉整个硬件以及开发环境,这并不是我们的最终目的,但这是一个必须的过程,为后面开发协议栈奠定基础。
打开我们前面安装的IAR软件,创建一个新的工程。
因为我们使用的CC2540是增强型51单片机,这里我们创建一个空的8051工程,具体配置选项如图:
选择目录保存工程;
我们这里创建一个最简单的例程,点亮一个LED,这个例程就像我们学习每种编程语言是都是先来个Hello World!。虽然简单,但是能够让我们最快的掌握一个开发环境的使用。
新的工程为空工程,没有任何文件,我们这里新建一个文件并且保存为C文件。
添加文件到工程:
保存WorkSpace,在IAR中每个工程都必须要有一个Workspace,而且一个Workspace中可以有多个工程,所以这里我也必须要保存一个Workspace,点击file->save Workspace As就会弹出如下对话框,这里和保存文件一样需要对这个WorkSpace命名,我们这里一样取名LED。
接下来我们需要对工程进行一些配置,使它适应我们的CPU。在工程处右击,进入配置界面。
CPU配置:
这里我们第一个要做的就是选择我们的CPU,我们使用的是TI公司生产的CC2540F256,所以这里选择CC2540F256。配置好CPU后,我们还需要配置编译输出的文件格式,选择到Linker选项,配置如下图:
debug选项:
选项配置:
经过这些配置后,我们可以开始编码了,下面开始编写我们的第一个代码,功能是点亮2个LED,开发板上有两个LED灯,分别对应P1.0和P1.1。
代码如下,可能觉得都是注释,这里我还是建议大家有一个好的编码风格,在开发大项目时就能够看到它的优势。
int main(void)
{
P1SEL &= ~0X03; // 将P1.1、0设置为IO功能
P1DIR |= 0X03; // 设置P1.1、0为输出功能
while(1)
{
P1 = (P1 & 0XFC) | 0X01; // 设置P1.0输出高电平
}
return 0;
}
编写好代码后,就可以编译下载到开发板上了。点击图中所示图标全速运行。
根据原理图,P1.0对应的是LED2,这里我们能够看到LED2处于点亮的状态。
根据CC254X的数据手册,我们可以很快知道P1SEL是设置IO功能,P1DIR是设置输入输出。至于为什么程序是这么写,我们来看下,CC254X芯片的P1口一共有8个IO口,那就是说刚刚好由两位十六进制进行控制:1111 1111(FF),这里仅仅是LED1和LED2,也就是
- 主流蓝牙BLE控制芯片详解(3):创杰 IS1685S(07-18)
- 苹果光环加持,蓝牙Beacon技术成室内定位应用最大黑马(08-02)
- 主流蓝牙BLE控制芯片详解(4):Nordic nRF51822(07-20)
- 蓝牙BLE之室内定位iBeacon应用测验(08-02)
- 由浅入深,蓝牙4.0/BLE协议栈开发攻略大全(5)(08-02)
- 由浅入深,蓝牙4.0/BLE协议栈开发攻略大全(2)(07-18)