版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、BLE-入门与提高SmartRF 系列开发板2014-10-22v2.6 Amo1 日期版本说明2014-04-18V2.1初版2014-05-01V2.2增加第八章2014-05-21V2.3修改部分文字错误2014-06-16V2.4增加开发板到手后安装驱动,如何连接,如何让板子跑起来等初级2014-07-22V2.5勘误2014-10-22V2.6增加 IAR 8.20 介绍目录目录2前言6开发板上手指南6BLE 简介8无线网络数据传输协议对比8蓝牙 4.091.2.1 什么是蓝牙 4.091.2.2 蓝牙 4.0 与传统蓝牙之间的关系10Bluetooth Low Energy111.
2、3.1 BLE 简介111.3.2 BLE 特点11BLE 无线网络通信信道分析13BLE 无线网络拓扑结构14BLE 技术的应用领域14第1 章1.11.21.31.41.51.61.71.82 章2.1CC254xEK 开发套件硬件概述14本章小结15第IAR 开发环境及流程15IAR 集成开发环境简2.1.1 安装 IAR8.10.工程的编辑与修改.2.20. 21. 22. 23建立一个新工程.建立一个源文件.添加源文件到工程.2.2.12.2.22.2.32.2.42.2.5工程设置25源文件的编译. 31. 32.32. 342.32.3.12.3.2程序2.43 章3.13.2本
3、章小结.CC254X 开发板硬件布局与第3.2.1 天线及巴伦匹配电路设计.3.2.2 晶振电路设计.底板硬件3.33.3.13.3.23.3.33.3.43.3.53.3.63.3.73.3.83.3.9电源电路设计43LED 电路设计44TI 五向按键电路设计46串口电路设计/USB 转 UART46LCD12864 电路设计48开发板扩展接口设计49复位电路51Debugger 接口51mpu6050 六轴传感器 接口523.9.103.9.113.9.12光敏传感器55继电器接口56气体传感器接口57 Amo23.9.13感应器接口573.44 章4.1本章小结58BLE 协议栈入门5
4、8BLE 协议栈58第4.1.14.1.24.1.3什么是 BLE 协议栈58如何使用 BLE 协议栈59BLE 协议栈的安装、编译与594.2BLE 协议栈基础实验:数据传输实验664.2.14.2.24.2.34.2.44.2.5SimpleBLECentral 主机编程66SimpleBLEPeripheral 从机编程73Central 和 Peripheral 从机通信测试78LightBlue 与开发板之间的通信实验85PC 与开发板之间的通过 Btool 的通信实验89BLE 数据传输实验剖析944.34.3.1 数据. 954.3.2 数据接收964.3.3 从机接收主机发来的
5、数据96BLE 数据包的捕获964.4.1 如何构建 BLE 协议分析仪964.4.2 BLE 数据包的结构994.4.3 数据收发实验回顾103本章小结104BLE 协议栈开发提高104深入理解 BLE 协议栈的构成1044.44.55 章5.1第5.1.15.1.25.1.35.1.45.1.55.1.65.1.75.1.85.1.9BLE 协议层105拓扑结构和设备状态106状态以及连接过程106和快递服务类比106BLE BLE BLE BLE BLE BLE BLE广播. 107广播间隔107扫描. 108发起连接108连接参数108BLE 连接108Slave 的潜伏109连接参数
6、的设定109终止连接110ATT 的 Client/Server 架构110ATT 的 AttributeTable Example(属性表示例)1105.1.105.1.115.1.125.1.135.1.145.1.155.1.165.1.175.1.185.1.195.1.205.1.21TI-BLE的 Client/Server 架构111的 Profile 层次结构111Service Example112GATT GATT GATT GATT GATT GATT的的的Characteristic Declaration113Characteristic Configuration1
7、14Client Commands1145.2协议栈简介115协议栈 demo 分类115协议栈 demo 工程目录结构116BLE 协议栈执行流程1185.2.15.2.25.2.3BLE 协议栈 OSAL 介绍1195.3 Amo35.3.15.3.25.3.35.3.45.3.55.3.6OSAL OSAL OSAL OSAL OSAL OSAL常用术语119运行机理120消息队列123添加新任务123应用编程接口124使用范例分析125HAL1335.4硬件抽象层5.4.1 硬件抽象层文件目录1335.4.2 硬件抽象层驱动编译135BLE 协议栈的 GAP 和 GATT1375.55
8、.5.15.5.25.5.3通用配置文件(GAP)137通用属性配置文件(GATT)138BLE 协议栈提供的 GAP 和 GATT 的 API 函数140BLE 协议栈中串口打印1405.65.6.15.6.25.6.3编写 UART 驱动程序140新建协议栈工程143编译及测试1495.7BLE 协议栈里的网络处理器 HostTestRelease1495.7.1 工程概述149推荐使用的代码常用工具151SourceInsight-代码阅读和编辑工具:151Beyond Compare 代码对比工具151第 6 章6.16.2第 7 章 CC254x 基础实验152第 8 章 蓝牙设计问
9、答1538.1.8.2.8.3.8.4.8.5.8.6.8.7.8.8.8.9.问:什么是蓝牙通信?153问:如果从事蓝牙开发有没有前途?153问:蓝牙有什么优势?154问:蓝牙 4.0 协议和 BLE 是什么?154问:目前支持蓝牙 4.0 的移动设备有哪些?154问:如何开始蓝牙 4.0 的开发呢?154问:刚开始接触蓝牙如何快速上手?154问:IAR 调试 CC2540 时程序导入到了的 Flash 中了吗?154问:当 IAR 调试中出现警告“缺少断点,无法运行到 main()”?155问:为什么 IAR 调试时有很多变量无法查看它的值?155问:蓝牙协议分层很多且比较复杂,该如何掌握
10、呢?155问:OSAL 是一个操作系统吗?155问:蓝牙节点是如何组成微微网的呢?155问:主节点和从节点通信的过程是怎样的呢?155问:蓝牙通信中两个节点如何交换数据?156问:Client 和 Server 节点是如何定义呢?156问:Server 是如何提供数据呢?157问:不明白 Server 提供服务中的 UUID?157问:什么是 Server 提供服务中的句柄呢?157问:为什么 Server 提供的服务中有描述?157问:服务的属性与描述有区别吗?157问:如何知道一个服务的 Handle?158问:Server 可以Client 吗?.问:如果得知电池容量?158问:蓝牙发射
11、信号功率调整会影响通信距离吗?159问:如何知道两个蓝牙通信节点之间的距离?1598.10.8.11.8.12.8.13.8.14.8.15.8.16.8.17.8.18.8.19.8.20.8.21.8.23.8.24.8.25.8.26.8.27. Amo48.28.8.29.8.30.问:如何获取蓝牙节点的接收 RSSI 值?159问:如何开展RSSI 值的实验?159问:如何将接收 RSSI 实验数据得到距离计算公式呢?1608.31 问:针对 RSSI 采样值选用什么样的滤波算法?1618.32 问:我也hal_lcd.c 到指定目录了, 为什么 oled 显示屏不显示?1628.3
12、3 问 1,主机如何清除绑定地址?1628.34 问 2,我也按照你文档的要求替换 Hal_lcd.c 了, 但为什么从机 Oled 显示屏不亮但主机是亮的?1638.35 问 3,SimpleBLECentral 和SimpleBLEPeripheral 断开连接后,会显示"Disconnected Reason:22",这个 22 或者 63 等代表什意思?1638.36 问 4,IAR 编译出来的 bin 文件有多大怎么看?1648.37 问 5: BLE 协议栈的系统节拍时钟用的是哪个定时器?1658.38 问 6: 开发板的五向按键 center 被误认为 rig
13、ht ?(9.20 日后出货的开发板默认带的固件)165 Amo5前言第 1 章讲解了 BLE 协议的基础知识,结合我们的 SmartRF 系列 BLE 开发板,这也是本文的硬件平台。第2 章对 IAR 开发环境进行了讲解,突出我们实际使用中密切相关的功能,其余予以略过。第第第345章对章对章对CC254X 开发板硬件进行了讲解。Bluetooth-LE 低功耗蓝牙中的数据传输进行了讲解。BLE 协议栈中的 OSAL 进行了讲解。技术支持与项目开Amo ,希望读者阅读完本书后,结合自己的项目发合作(TEL)需求,对相应的协议栈源代码精心修改,再实验,只有通过不断的实践学习,才能真正掌 握 BL
14、E 无线网络的开发。开发板上手指南好吧, 不少用户都跟Amo我反映说,你的开发板如何使用呀? 怎么连接?怎么编译?其实,稍微有点单片机开发经验的都能知道如何连接,回想当初我刚接触单片机的时候也是非常的迷茫,那么,在本文档开篇的地方, 我们来简要地描述一下开发板如何使用吧。开发板到手后,如下图连接,你的开发板就已经能跑起来了,由上图可见, 我们连接了两个usb到电脑, 那这是为什么呢?首先,器需要连接一个usb, 用于固件、单步调试等。 Amo6其次,开发板也连了一个usb线到电脑, 他的作用仅仅是usb转串口,一方面方便我们打印程序运行信息,另一方面,我们也可以做串口透传程序,让pc上的串口数
15、据通过该接口 传输到蓝牙, 反之亦然。这是我们的开发板的物理连接, 那么关于各种软件的安装,请看相关章节。【1】 首先你通过我提供的网盘,到的资料如下(可能稍微有点出入, 但变化不大)其实 IAR(是软件的编译工具)的安装在本文档的第二章就有描述, 可以跳到那里去参考。未完待续2014.07.22 Amo7第 1 章 BLE 简介如今,物联网技术得到快速的发展,而物联网技术里的主角则是已发展成BLE无线网络,作为开发者的我们,使用 TI 的软件和硬件络。,即可轻松搭建自己的无线网1.1 无线网络数据传输协议对比我们比较熟悉的网络有 Zigee,WIFI、Bluetooth(传统蓝牙,新一代蓝牙
16、也发生了巨大的变化),他们三者之间的关系可以从下图中看出来。1-1 三种常见的网络对比从图 1-1 中可以看到不同的无线数据传输协议在数据传输速率利传输距离有各自的使用范围。Zigbee、蓝牙以及 WIFI 标准都是工作在 2.4GHz 频段的无线通信标准。下面将 BLE 与传统蓝牙、WIFI 标准进行简要的比较,帮助读者快速地了解。·传统蓝牙数据传输速率小于 3Mbps,典型数据传输距离为 2-10m,蓝牙技术的典型应用是在两部之间进行小量数据的传输。·WIFI 最高数据传输速率可达 50Mbps,典型数据传输距离在 30-100m,WIFI 技术提供了一种 Inteme
17、t 的无线接入技术。 Amo81.2 蓝牙 4.01.2.1什么是蓝牙4.0图 1.1 蓝牙 4.0 logo 和 BLElogo蓝牙无线技术是使用范围最广泛的全球短距离无线标准之一,全新的蓝牙4.0 版本将三种蓝牙技术(即传统蓝牙,高速蓝牙和低功耗蓝牙技术)合而为一。它集成了蓝牙技 术在无线连接上的固有优势,同时增加了高速蓝牙和低功耗蓝牙的特点,这三个规格可以组合使用,也可以单独使用,低功耗蓝牙即 ble 是蓝牙 4.0 的规范,该技术最大特点是拥有超低的运行功耗和待机功耗,蓝牙低功耗设备使用一粒纽扣电池可以连续工作数 年之久,可应用与对成本和功耗都有严格要求的无线方案,而且随之智能机的发展
18、将有着 更加广泛的领域。当前,支持 ble 的智能设备除了的队伍,从 4.3 系统开始,Android 将提供出现在生活中的各个领域。(iOS 系统)外,Android 也正式加入了 ble的 API 接口,在的将来,BLE 将会BLE 是一种标准,该标准定义了短距离、低数据传输速率无线通信所需要的一系列通信协议。基于 BLE 的无线网络所使用的工作频段为 868MHz、915MHz 和 2.4GHz,最大数据传输速率为 250kbps。下面通过一个具体酌例子向读者展示一下 BLE 的具体应用。在系统中,病人的血压可以通过特定的传感器检测,因此,可以将血压传感器和 BLE 设备相连,BLE设备
19、定期检测的血压,将血压数据以无线的方式到服务器,服务器可以将数据传输到医生的电脑上,医生就可以根据 Amo91.2.2 蓝牙 4.0 与传统蓝牙之间的关系Smart Ready 和 Smart以及传统蓝牙之间是什么关系呢,请看下图:Smart Ready 可以和Smart Ready、传统蓝牙,及 Smart 之间相互连接和通信。传统蓝牙可以和 Smart Ready、传统蓝牙之间连接和通信Smart 可以和 Smart、Smart Ready 之间连接和通信很多客户都比较关注 CC2540 是否向下兼容,看了上图就应该明白,是的,CC2540 是 BLE 单模,属于 Smart,所以只能和S
20、mart Ready或者Smart之间连接和通信,CC2540是不兼容传统蓝牙的。低功耗蓝牙与其他蓝牙兼容性示意双模设备1:BasicRate(BR),2:Bluetooth Low Energy (BLE)同时支持BR 和BLE 的设 Amo10备为 dual-mode(双模)设备,也就是这里讨论的 Smart Ready。Smart Ready 是蓝牙 4.0里的主体,一般具有稳定电源供电的设备,如,PC 等采用的均是双模的蓝牙。很多 android软件里不支持LE。都表明支持蓝牙 4.0,其实很大部分只支持 Smart Ready 里的 BR,而目前 Android4.3 系统才开始全面
21、支持 BLE。iOS 设备对蓝牙 4.0 支持的最好,只要是4S+iOS7.0 和以后的设备均完美完全支持蓝牙 4.0单模设备那么 Smart 又是什么呢,Smart 是蓝牙 4.0 里的低功耗蓝牙的商标,就是 Bluetooth Low Energy,缩写为 LE 或者 BLE,网上关于蓝牙 4.0 一节纽扣电池能够使用一年均是针对 BLE 而言。Smart Ready 功耗还是很大的,需要有稳定的电源供电,像 、PC 等设备,而 Smart 由于功耗低,一般使用电池、或纽扣电池供电。Ti 的 CC2540 便是 BLE 设备。Smart 的最主要特点是低功耗和低速率。1.3 Bluetoo
22、th Low Energy1.3.1 BLE 简介BLE 规范中定义了 GAP(Generic Access Profile)和 GATT(Generic Attribute) 两个基本配置文件。协议中的 GAP 层负责设备初始化安全特征和设备配置。模式和进程,包括设备发现,建立连接,终止连接。协议栈中的 GATT 层用于已连接1.3.2 BLE 特点总体而言,BLE 技术具有如下特点:(1)高可靠性对于无线通信而言,由于电磁波在传输过程中容易受很多因素的干物的阻挡、天气状况等,因此,无线通信系统在数据传输过程中具有内在的不可靠性。蓝牙技术内在的不确定性,在射频,基带协议,链路管理协议中采用可
23、靠性措施,包括:差错检测和 行数据编应调频技术,能最大程度地减少和其他 2.4G 无线电波的串扰。(2)低成本、低功耗低功耗蓝牙支持两种部署方式:双模式和单模式,一般智能机上采般采用 BLE 单模,例如采用 CC254x 作为 BLE 从机的计步器血压计和iBeaconBLE 技术可以应用于 8-bit MCU,目前 TI 公司推出的兼容 BluetoothLE 协议的 SoC即可实现网络节点的构建。Nodic的NRF51822也不过才10元 Amo11低功耗设计:蓝牙 4.0 版本强化了蓝牙在数据传输上的低功耗性能,功耗较传统蓝牙降低了 90%。传统蓝牙设备的待机耗电量一直是其缺陷之一,这与
24、传统蓝牙技术采用 16至32个频道进行广播有很大关系,而低功耗蓝牙仅适用 3 个广播通道,且每次广播时射频的开启时间也有传统的 22.5ms 减少到 0.61.2ms,这两个协议规范的改变,大幅降低了因为广播数据导致的待机功耗。低功耗蓝牙设计用深度睡眠状态来替换传统蓝牙的空闲状态,在深度睡眠状态下, 主机 Host 长时间处于超低的负载循环 Duty Cycle 状态,只在需要 时由控制器来启动,由于主机较控制器消耗的能源的能源。(3)快速启动、瞬间连接此前蓝牙版本的启动速度非常缓慢,2.1 版本的蓝牙启动连接需要 6s 时4.0 版本仅需要 3ms 即可完成,几乎是瞬间连接。(4)传输距离极
25、大提供传统蓝牙传输距离一般 2-10m,而蓝牙 4.0 的有效传输距离可以达到输距离提升了 10 倍,极大开拓了蓝牙技术的应用前景。传(5)高安全性为了保证数据传输的安全性,使用 AES-128 CCM 于初学阶段,安全性问题可以暂时不考虑。例如,一般情况下,市面上每节 5供电的终端节点而言,总电量为 3(理论值),如果放电电流为·终端节点在数据·数据接收期间所需要的瞬时电流为24mA。再加上各种传感器所需的工作电流,为了讨论问题方便,假设各种传感器所需的工作电流为 30mA(这个工作电流已经很大了),那么数据期间所需要的总电流为59mA,数据接收期间所需要的总电流为54m
26、A,为了讨论问题方便,总电流取 60mA,表面上 2 节5 号电池可以供终端节点连续工作 50h。但是,对应实际系统,终端节点对数据的一般是定时,例如50s 数据,其他时间都由于温度变化减慢,所以可以在此假设终端节点每小时工作 50s,定时在休眠(其他时间都在休眠,休眠时工作电流在微安级'所以可以忽略不计)。那么实际上情况是:系统采用 2 节 5 号电池供电,终端节点工作电流为 60mA,每小时工作 50s(其他时间都在休眠,休眠时工作电流在微安级,所以可以忽略不计),可以计算出 2 节 5 号电池可以供终端节点工作时间为:3600h=150 天,即大约半年时间, 这也就是很多介绍 B
27、LE 技术的书籍中提到的“对于 BLE 终端节点使用 2 节 5 号电池供电,可以工作半年的时间”的理论侬据。请读者注意,上述分析是针对的终端节点,对于 路由节点和协调器而言,要一直供电来确保数据的正确路由,所以一般不谈低功耗问题。(3)高安全性为了保证数据传输的安全性,可以使用 AES-128 加密技术,但是对于初学阶段,安全性问题可以不予考虑。(4)低数据速率无线控制系统对数据传输的可靠性和安全性、系统功耗和成本等方面有着特殊的要 求,因此,目前的无线网络协议没有很好地解决这些特殊的要求。 Amo121.4 BLE 无线网络通信信道分析天线对于无线通信系统来说,在日常生活中可以看到各式各样
28、的天线,如手机天线、电视接收天线等,天线的主要功能可以概括为:完成无线电波的发射与接收。发 射时,把高频电流转换为电磁波发射出去:接收时,将电磁波转换为高频电流。如何区分不同的电波呢?一般情况,不同的电波具有不同的频谱,无线通信系统的频谱有几十兆赫兹到几千兆赫兹,包括了收音机、电视等使用的波段,这些电波都使用空气作为传输介质来,为了防止不同的应用之间相互干扰,就需要对无线通信系统的通信信道进行必要的管理。各个都有自己的无线电管理结构,如美国的通信委员会(FCC)、欧洲的电信标准委员会(ET是负责无线电频率的划分、分干扰查处,协调处理电磁干扰事宜和维一般情况,使用某一特定的频段霈要得到无线电管电
29、管理部门也规定了一部分频段是对公众开放的,不需要,当然,各国的无线用需求,这些频段包括 ISM(Industrial. Scientific and Medical、工频带。除了 ISM 频带外,在我国,低于 135kHz,在也是些频带上所使用的部发布的微功率(短距离)无线电设备管理规定。BLE 工作在 ISM 频带,定义了两个频段,2.4GHz 频段和 896/915MHz医疗)频带。在IEEE802.15.4 中共规定了 27个信道:16 个信道,信道通信速率为 250kbps:10 个信道,信道通信速率为 40kbps: 个信道,信道通信速率为 20kbpS。·在·在
30、·在2.4GHz915MHz868MHz频段,共有频段,共有频段,有 1BLE 工作在 2.4GHz 频段,仅适用 3 个广播通道,适用所有蓝牙规范版本通用的自适应调频技术。自适应调频技术是建立在自动信道质量分析基础上的一种频率自使用和功率自适应控制相结合的技术,他能使调频通信过程中自动避开扰的调频频点并以最小的发射功率、最低的被截获概率,达到在无干扰的调频信道上长时间保持优质通信的目的。 Amo131.5 BLE 无线网络拓扑结构BLE 网络可以点对点或者点对多点,一个 ble 主机可以连接多个 ble 从机,组成星型网络,另外还有一种有广播设备和多个扫描设备组成的广播组结构,不同
31、的网络拓扑对应不同的应用领域。1.6 BLE 技术的应用领域一直以来,蓝牙技术在配件方面的应用都更受关注,但随着移动的迅猛发展,BLE将会有更大的用武之地。事实上,BLE 的低功耗技术,在设计之初便主打等特殊市场。而总的来说,蓝牙 4.0 的发展方向将是运动管理、医疗健康照表、智能家居以及各种物联网相关应用。在医疗健康领域,过去不少健康类的应用都是基于蓝牙 于耗电问题而未能掀动太大波澜。BLE 化解这起,并由许多不同医疗技术与日后的标准传输技术中。现在市场上已有许多采用蓝牙 2.1 规格的医疗血糖仪等,未来,通过 Continua 健康仪限会越来越多。健康应用方面,BLE 也有广阔的市场空间,
32、其可以与健身设备进行无缝结合,人们在使用健身器材时,就能通过相关设备如计步器、脉搏机等来传送并 入移动设备,保存个人的健康信息。运动情况进BLE 与安卓的结合更将对当下如火如荼的“物联网”起到推波助澜的作用。目前市场上的所有智能设备都是物联网发展的推动力量, BLE 能够起到打通物联网的和传感器设备之间的“关节”的节点作用,这将从关键意义上推动物联网的真正发展。由于蓝牙 技术一向关注上层应用,有统一标准,因此各种各样的底层硬件虽出自不同制造厂家,却可以互联互通,能够形成完善的环境,为自身及物联网市场都创造了良好环境。有分析认为,当 BLE 把每个人的安卓或者其他移动设备变为一个传感器时,它所能
33、做的将不仅仅是通过应用软件去找东西,而是将拥有巨大的可拓展性,如它可以通过 App 和传感器来构建一个 P2P 的网络以模拟 GPS 的功能等。总之,当 BLE 传感器无处不在时,定然蕴藏着巨大商机。1.7 CC254xEK 开发套件硬件概述进行 BLE 无线网络的开发,需要有相关的硬件和软件,在硬件方面,TI 公司已经推出了完全支持 BLUETOOTH-LE 协议的 SoC-CC254X,同时也推出了相应的开发套件;但是价格较高。不适合国内的学习环境,因此我们依照 TI开发板,在最大程度兼容 TI 官方的基础上,我们开发了 CC254xDK(SmartRF 系列)开发套件。 Amo141.8
34、 本章小结本章主要讲述了 BLE 协议的基础知识,此外还有我们的开发套件的简单介绍,使读者对 BLE 有一个整体的概念。第 2 章 IAR 开发环境及流程由于 BLUETOOTH-LE 协议的发布,以及相关公司推出的协议栈逐渐完善,市场上出现了各种各样的 BLE 技术解决方案,但是对于初学 BLE 的用户来说,如何准确地选择一款适合自己的开发平台。下面给出建议:·【1】尽可能选用与 TI接近的开发板我们的开发板协议栈部分完全兼行,无需做任何移植工作,另外,由于 BLE 会随意升级,而不用担心硬件环境发生变化。·【2】带有丰富的开发资料以及实践项目这里说的丰富的开发资料是指与
35、开发板配套的资料,并非网 对于初学者来说,一套能够直接上手的开发板和资料性。的开发板上直接运BLE 资料,极·【3】工作时间提供我们提供CC254x系列开发板的主要的目的是为了进行BLE相关的项目合作,所以我们已经实现了4.初级基础实验和5.中级基础实验,并不遗余力地尽最大努力逐步完 善6.高级BLE实践实践,考虑到每个开发者的学习进程不一致,应该说一对一的技术支持是零碎费时费力的,但我们愿意与你经验,所以我们建立了AmoMcu开源社区 用来与现方式。一起推动BLE在国内的快速,这本身也是实现人生价值的体本章主要讲述 lAR 开发环境进行 CC254X SoC 的开发,如果用户已经熟
36、悉 IAR 开发环境,完全可以跳过本章,直接进行后面章节的学习。2.1 IAR 集成开发环境简介IAR Embedded Workbench(又称 EM)的 C 交叉编译器是一款完整、稳定且容易使用的专业应用开发工具,EW 对不同的微处理器提供统一的用户界面,目前可以支持至少 35 种的 8 位、16 位、32 位的 MCU。·完全兼容标准 C 语言·内建相应·高效浮点支持·内存模式选择的程序苏荷和内部优化器 Amo152.1.1 安装 IAR8.10程序安装包位于【2.开发环境安装及相关驱动1.IAR8.10.4】目录下,如下图双击运行 autorun
37、.exe,然后再跳出的画面中选择第二项,InstallIAR EmbeddedWorkbench。根据提示一路 next,到 Enter User Information 这一项,提示输入license: Amo16这里使用 keygen 生成 iar 的 license,方法为:双击下面路径中的!RUNME.BAT,出现下图:按下 任意键后, 该文件夹下生成了 license.txt,如下图: Amo17打开 license.txt第一行中的 9906-这个就是 license number。注意:以下的Keygen,对某些电脑可能无效,建议大家,不管是xp、win7还是win8,直接使用命
38、令行的方式,手动。在:开发环境安装一节,有指导。licensenumber(9906-)到iar安装向导中,next 后, 再在 license.txt 中查找 EW8051,然后把类似如下的几行到剪切板, Amo18然后粘贴到 license key 中 , 一路NEXT即可, 其中如果你安装了安全卫士如360安全卫士, 可能会提示你系统修改, 忽略即可。然后一路 next,安装结束后在开始菜单中找到IAR软件IAREmbeddedWorkbench运行的IAR软件如下图: Amo19如果在 iar 的使用过程中出现如下错误这是由于 iar 的 license 未能安装成功,请严格按照软件目
39、录下的几个文档,多数是由于未能使用管理员运行机导致。使用 win7 的用户请注意,上述的方法可能无法,需要在使用第二种命令行的方式。在解压 2. 开发环境安装及相关驱动1.IAR8.10.4IAR8.10.4IAR EW80518.10.4.rar文件后, 命令行方法文件夹下,有命令行方式的,务必按照要求一条一条的做,会成功没有按照要求做。,如果还出现上述 license 错误,基本上可以确定是因为2.2 工程的编辑与修改IAR 集成开发环境中,对用工程的编辑操作主要涉及以下几个方面的内容:·如何建立、保存一个工程·如何向工程中添加源文件·如果编译文件·
40、工程配置在哪里下面进行详细的讲解: Amo202.2.1 建立一个新工程【部分网友用户说目前下面这种方法建立后不行,为避免浪费您宝贵时间,建议您跳 过这一节, 直接使用我们已经建立好的工程即可, 比如基础实验就是这些 奔工程, 详见AmoMcu-CC254x开发套件资料4.初级基础实验】 若是不跳过, follow me .打开 iar,点击菜单栏的:Project,在弹出的下拉菜单中选择Create New Project,选择“Empty project”,单击OK,然后会询问保存 project,选择一个合适的目录,我这里保存的目录在 CC254X 基础测试程序1_点亮 LED 目录下,
41、然后填入合适的工程名,然后单击 OK,如下图: Amo212.2.2 建立一个源文件单击Newdocument按钮,新建一个文本文件: Amo22 新建了文件之后单击保存按钮,保存为文件名为:main.c到source目录下(source是在IAR工程目录内新建的用来专门保存源码的目录)2.2.3 添加源文件到工程右击工程名,选择main.cadd->Add“main.”c,注意,也可以使用add files,手动选择 Amo23在 main.c 中输入以下代码: #include <ioCC2540.h>/常用的宏定义/*位操作,作用是将第 n 位置 1这在单片机中是非常常
42、见的操作。*/#define BV(n) (1<<(n)void delay(unsigned int time)int i,j; for(i=0;i<time;i+)for(j=0;j<1000;j+);int main()/设置 P1.0 端口方向为输出P1DIR |= BV(0);/设置 P1.0 端口为 GPIO 功能P1SEL &= BV(0); Amo24/死循环while(1)P1_0=1;/点亮 led delay(1000); P1_0=0;/熄灭 led delay(1000);然后保存成led.eww即可:2.2.4 工程设置在左边的 Wo
43、rkspace 中右击工程名,然后选择框,注意,OptionOption,进入 Option 工程配置 Amo25配置目标在出现的框中,首先是选择该 project所使用的 Device,左边选择General,我Option,然后在右边的一些列的选项卡中选择 们这里使用的径为:C:ProgramFilesIARSystemsEmbeddedWorkbench6.08051configdevicesTexas Instruments),截图中用的是CC2540,使用2541的用户相应选择CC2541F256.i51即可。 Amo26设置 Code 和 Memory Model。在 code 类
44、型中有 Near 和 Banked 两项可选择。“Near”当不需要 Bank 支持支持是可以选择 Near,例如,你只需要64K flash空间的时候,不需要的 flash 空间,比如你使用的是 CC254XF32 者使用的 CC254XF256 但并不需要那么大的 flash 空间时,可以选择“ Banked ” 选择该项时标明你需要的空间能够CC253xF256 的整个 Flash 空间。或 CC254XF64,或Near。 CC253xF128 或者默认 Near code model 中的 data model 是 Small,默认的 Banked,data model 为Large
45、,data model 决定编译器或者连接器如何使用 8051 的内存来变量,选择 small data model,变量存data model,变量典型的储在 XDATA空间。在 DATA 内存空间,如果使用Large在这里,重要的事情是,8051 IDATA,一般情况下,比在 BLE 协议栈中,使用使用不同的指令来y spaces IDATA 大。以 Amo27 在 Banked code model 中,有一些额外的选项需要注意,选择 Code Bank tab,如下图,CC254X 使用 7 个 code banks,为了整个 256K 的 Flash 空间,Number of 必须设
46、置为 0x07,Register 0x9F 是 CC254X 的 FMAP 寄存器,用来控制当前那个codebank到8051的地址空间,第三个Register未使用,最好设置0xFF。 Amo28设置器在左边的选项中选择 “Linker”,并在右边的选项卡中选择 Config 一页,在LinkerCommandfile中 复 选Overridedefault , 例 如 , 我们选择lnk51ew_CC254XF256_banked.xcl,banked表示使用bankedcodemodel。 Amo29默认路径为:$TOOLKIT_DIR$configdevicesTexas Instru
47、mentslnk51ew_CC254XF256_banked.xcl设置最后,在器调试Debugger选项中,选择Texas Instruments为 Driver 对象: Amo30至此,这个 IAR 工程就配置好了,单击 OK 确认。2.2.5 源文件的编译编译过程中如果出现错误,请根据错误提示修改不造成的语法问题。 Amo31 2.3调试与在运行代码之前,首先将器和开发板连接好,器的使用 mini-usb 开发板,如下图:线连接到电脑 PC端,然后使用灰色排线连接器和SmartRF需要注意的是,不管使用 CC-Debugger器还是SmartRF04EB器,在调试下载程序前,必须要按一次
48、真器灯由红变绿,或者 04EB 不可预知的问题。器的复位按钮,等到器识别到开发板( CC-Debugger 仿2.3.1连接 CC-Debugger 如果电脑中存在如果没有出现安装成功。则先确定 cc-debugger 是否与 电脑 usb 连接 OK,连接 OK 后,电脑上肯定会出现新新硬件的提醒。如果插上电脑没有任何反应,更换 mini-usb线。如果有提示新硬件,但显示驱动未能安装成功,打开电脑的设备管理器。如下图: Amo32如果框起来的有感叹号或者别的,需要更新一下SmartRF04EB,选择更新驱动程序。器的驱动。右击CCDebugger,或者Amo33 到我们提供的器驱动即可,该
49、驱动同样适用于 SmartRF04EB 和 USBdongle。或者将驱动程序路径为:C:Program到 Flash Programmer的安装目录下的驱动程序文件夹,默认的安装ToolsDriverscebalwin_32bit同级目录还有一个win_64bit_x64CC-Debugger CC-Debugger之间有四颗电平转换你的目标板有电压,因信号转到多高。仅用四线调此,也可以简单的将 CC-Debugger 试接口的话)的第 9 脚和第 22.3.2 程序开始运行的 iar 截图如下: Amo34至此,我们完成了第一个 IAR 工程的创建和第一个程序的编写编译与运行,日后的开发过程中几乎都是重复这样的工作,只不过代码会越来越多,需要管理的文件也越来越多。但请保持信心,终有有一天你能轻松驾驭他
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026重庆大渡口区中医院招聘临床护士25人考试备考题库及答案解析
- 2026年混合集成电路板行业分析报告及未来发展趋势报告
- 2026年甲基异噻唑啉酮行业分析报告及未来发展趋势报告
- 2026年固原市水利系统事业单位人员招聘考试备考试题及答案详解
- 2025年四川省公考行测真题及答案解析(B卷)
- 2026年荆门市人力资源与社会保障系统事业单位人员招聘考试备考试题及答案详解
- 2026年乳酸菌保健品行业分析报告及未来发展趋势报告
- 2026年耳钉行业分析报告及未来发展趋势报告
- 2026中国太平洋人寿保险股份有限公司江门中心支公司招聘2人考试备考题库及答案解析
- 2026年汽车座椅空调行业分析报告及未来发展趋势报告
- 2025年长沙农商银行招聘备考题库(30人)附答案详解(模拟题)
- 流动人口管理服务
- DL-T+1127-2023+等离子体点火系统设计与运行导则
- 2025重庆水务集团股份有限公司校园招聘16人笔试历年参考题库附带答案详解
- 万达装修施工方案设计
- 电网侧独立储能电站项目经济效益和社会效益分析报告
- 2025上半年软考系统架构设计师考试真题考及答案
- 碳13呼气试验课件
- 水闸工程安全运行监督检查规范化指导手册(2022年版)
- T-ZZB 2666-2022 射频识别应答器天线
- 2025年广东省中考英语试卷深度评析及2026年备考策略
评论
0/150
提交评论