
BLE
snyanglq
这个作者很懒,什么都没留下…
展开
-
第十节 蜂鸣器
第十节 蜂鸣器 蜂鸣器是一种常用的报警设备,常用的蜂鸣器有无源和有源两种类型,无源蜂鸣器需要用一定频率的方波驱动,从而发出不同频率的声音。而有源蜂鸣器只需要通电就会发出固定频率的声音,MT254xboard开发板上的蜂鸣器用的是无源蜂鸣器,因此我们需要用一定频率的方波来驱动。硬件驱动方面,我们这里使用了PNP三极管来驱动蜂鸣器,BUZZ引脚为芯片的P2.0。对照IO复用转载 2015-11-27 11:10:31 · 1025 阅读 · 0 评论 -
第十八节 协议栈UART实验
第十八节 协议栈UART实验协议栈中已经用了串口的驱动,我们要做的只是对串口进行初始化,然后就可以进行串口数据的收发了。用使用串口,第一步,需要打开使能串口功能,通过配置工程来实现,这里注意,我们现在不使用USB的CDC类来实现串口,所以HAL_UART_USB=FALSE。HAL_UART=TRUEHAL_UART_USB=FALSE要使用串口必须先初始化相应的串口,转载 2015-11-28 09:33:53 · 2099 阅读 · 0 评论 -
第十九节 协议栈五向按键
第十九节 协议栈五向按键和前面几个一样,按键的驱动在协议栈中也已经有了,我们只需要做一些小的修改,使它适应我们的开发板即可。1.修改工程配置,使能按键功能。2.在我们的工程中要使用按键功能,仅仅打开配置选项是不够的。因为协议栈代码默认只有MINIDK开发板才有按键。从这里可以看到(类似的地方有很多),如果要使能按键功能还需要定义CC2540_MINIDK,但是阅读整转载 2015-11-28 09:42:31 · 1356 阅读 · 0 评论 -
第二十节 协议栈Flash数据存储
第二十节 协议栈Flash数据存储CC254x自带了256K Flash,这256K的储存空间不仅可以储存代码,也可以储存用户的数据,协议栈自带了SNV管理代码,我们只需要学会使用即可。SNV的使用只有两个函数,分别是读函数osal_snv_read和写函数osal_snv_write,在SNV的储存中,储存的每个数据都有一个唯一的ID,SNV也正是利用这个ID来管理储存在Flash中的数转载 2015-11-28 09:48:26 · 1120 阅读 · 0 评论 -
第二十二节 蓝牙协议栈之从机通讯
第二十二节 蓝牙协议栈之从机通讯之前都是外围模块的驱动程序,这一节开始,我们进入蓝牙4.0协议栈的核心部分,从机通讯的程序设计。接下来的章节是蓝牙4.0协议栈最为核心的程序设计部分。 前面的大都是外围器件的实验,这节我们介绍蓝牙通讯中从机的角色,从机的主要工作是对外广播,接受主机的连接,并且接受主机发送过来的数据。这里介绍两个函数:bStatus_t GAPRole_SetPa转载 2015-11-28 10:07:23 · 2708 阅读 · 0 评论 -
第二十四节 OAD空中升级
第二十四节 OAD空中升级通过仿真器更新程序或者通过USB更新固件那都是一般人都可以实现的操作,但是要想实现OAD空中升级,这还是需要一定的技术能力。这一节我就带着大家完善这一能力。 OADn air download,指空中下载模式。当我们的产品发布以后,有时需要对固件进行升级,OAD是升级方式中的一种。配置BIM(Boot Image Manger)打开IAR,打开BLE-CC254x-转载 2015-11-28 11:07:25 · 1311 阅读 · 0 评论 -
第二十五节 SBL串口升级
第二十五节 SBL串口升级SBL升级和OAD升级的配置步骤都是一样的,主要是配置的参数不一样,下面我们来配置一个SBL升级的固件。配置SBL开IAR,打开BLE-CC254x-1.4.0下的工程C:\TexasInstruments\BLE-CC254x-1.4.0\Projects\ble\util\SBL\iar\cc254x\sbl.eww,然后编译,下载到开发板中。配置B转载 2015-11-28 11:21:04 · 1907 阅读 · 0 评论 -
第二十八节 在PC端实现OAD空中升级
第二十八节 在PC端实现OAD空中升级1. 通过PC进行OAD无线升级需要MT-USBDongle,结合TI提供的BLE Device Monitor软件。用户可以到馒头科技淘宝旗舰店购买到MT-USBDongle,然后根据馒头团队撰写的《MT-USBDongle-用户手册》中“PC端调试开发功能”章节安装好BLE Device Monitor。2. 在馒头科技百度网盘中下载到馒头科技提转载 2015-11-28 11:43:17 · 802 阅读 · 0 评论 -
第七节 独立按键之中断方式
第七节 独立按键之中断方式 复制Key工程,重命名为KeyInterrupt。刚刚我们用查询的方式读取按键的状态。但是这种方式在实际的工程中没有实际的应用价值,下面我们采用外部中断的方式来读取按键的状态,每当按键按下时就会触发一次外部中断。为了P0.0口能够触发中断,我们需要进行如下配置: P0IEN |= 0X01; // P00 设置为中断方式 PICTL &=~ 0转载 2015-11-26 16:34:49 · 5158 阅读 · 0 评论 -
第九节 五向按键
第九节 五向按键 五向按键,也就是我们平常所见的摇杆内部构造,五向按键有上下左右和中间五个按键值,MT254xboard上的五向按键检测电路由馒头科技自主设计,而不是Ti的设计,采用一个外部中断和一个AD检测口来完成按键的检测。由原理图可知当我们按下不同的键值时在JOY_CHK将会产生一个上升沿,并且在JOY_AD口有不同的电压。我们只需要在JOY_CHK的外部中断中读取J转载 2015-11-27 11:04:12 · 14595 阅读 · 0 评论 -
第六节 独立按键之查询方式
第六节 独立按键之查询方式在MT254xboard上有一个独立按键KEY1,如图 ,独立按键和复位键在整个班子的左上角。按键通过P0.0口和CPU连接,在没有按键时为高电平,按下后为低电平。下面我们通过LCD来显示独立按键的状态。其对应的原理图如下:我们先用查询的方式读取按键的状态。因为按键接入在P0.0口,所以我们读取P0.0口的电平即可知道按键的状态。转载 2015-11-26 16:24:33 · 4211 阅读 · 0 评论 -
第二十六节 UBL-USB升级
第二十六节 UBL-USB升级UBL升级是使用USB功能来进行升级的,它的配置也是一样的步骤。配置UBL。 打开IAR,打开BLE-CC254x-1.4.0下的工程。C:\Texas Instruments\BLE-CC254x-1.4.0\Projects\ble\util\UBL\soc_8051\usb_msd\iar\ubl.eww,选择CC2540-Nano。转载 2015-11-28 11:28:12 · 1554 阅读 · 0 评论 -
第二十三节 蓝牙协议栈之主机通讯
第二十三节 蓝牙协议栈之主机通讯 随着蓝牙4.0模块的大量使用,为了很多从未接触过蓝牙的工程师也能快速便捷地开发蓝牙项目或者使用蓝牙,主从一体、远控IO等等特性也成为蓝牙模块必备的条件。其实,联合第二十一节和本节(第二十二节),我们就能将一个本无固件的裸片蓝牙,使其开发为具备主从一体功能的蓝牙模块。这两节的内容,也是本连载篇的重点部分之一。 上一节我们对从机的工作流程有了一个整体的转载 2015-11-28 10:34:43 · 1421 阅读 · 0 评论 -
第二十七节 MT-iBeacon基站使用iPhone空中升级
第二十七节 MT-iBeacon基站使用iPhone空中升级在iPhone端实现固件更新 为了使用iPhone或者iPad对iBeacon进行固件更新,首先要确认手机为iPhone4S及以上,系统为IOS7及以上,在AppStore里搜索下载Multitool,这个APP是TI免费提供的,可以直接下载安装。安装好这个APP后,PC上需要使用iTunes将固件拷贝到手机。iT转载 2015-11-28 11:35:49 · 1013 阅读 · 0 评论 -
第十七节 协议栈LCD显示实验
第十七节 协议栈LCD显示实验打开LCD12864的实验工程,一样的在工程配置中打开LCD,选择MT254xboard然后直接编译下载,我们可以看到LCD上已经有显示了。这些显示来自哪里呢?在初始化函数中可以看到图中的函数调用,这里是将字符串显示到LCD的第一行。HalLcdWriteString是将第一个参数指向的字符串显示到第二个参数指定第几行中,转载 2015-11-28 09:26:01 · 2513 阅读 · 0 评论 -
第十六节 协议栈LED实验
第十六节 协议栈LED实验 TI的协议栈中在HAL层已经有了LED的驱动,我们只需要针对我们的开发板进行配置即可,我们的开发板有两个LED,分别对应P1.0和P1.1。这个在裸机开发的时候已经介绍了。 为了保持协议栈原有的代码不变,我们在BLE-CC254x-1.4.0\Components\hal\target目录下新建一个文件夹,使它适应我们的开发板。打开LE转载 2015-11-27 15:11:29 · 1085 阅读 · 1 评论 -
第一节 BLE开发环境的搭建
第一节 BLE开发环境的搭建1.1 硬件准备(1) MT254xBoard开发板(最好有两块,方便进行数据收发实验);(2) USBDongle-BLE抓包工具(多个固件,一个硬件多种用途)协议开发时辅助分析数据包;(3) 开发必备CC-Debug,用于下载和调试程序在后期的学习中,这些工具我们都会使用到!1.2 BLE协议栈的安装我们使用的是最新版本的协转载 2015-11-26 09:31:31 · 1259 阅读 · 0 评论 -
第二节 BLE快速体验
第二节 BLE快速体验 经过前面的安装,我们的开发环境已经搭建好了,现在我们先来体验一下BLE,给自己点动力,comeon!使用SmartRFFlash Programmer烧写从机固件:CC2540_SmartRF_SimpleBLEPeripheral.hex,烧写方法见SmartRF Flash Programmer的使用章节。协议栈默认自带了一些已经编译好的文件,可以直接烧转载 2015-11-26 10:01:29 · 771 阅读 · 0 评论 -
第五节 LCD12864显示
第五节 LCD12864显示上一节我们成功控制了LED和蜂鸣器,这一节我们马不停蹄接着LCD12864的控制。为了系统能够稳定的工作,首先我们将系统时钟切换到32M的外部晶振,为了自由配置所需要的时钟,主要借助于CLKCONCMD.OSC选择系统主时钟,而借助于CLKCONCMD.OSC32K则用于选择芯片32K时钟源!而低功耗模式设置时,需要借助于SLEEPCMD寄存器,在《CC253转载 2015-11-26 16:03:06 · 4688 阅读 · 2 评论 -
第十一节 串口通信
第十一节 串口通信 在软件开发过程中调试是一个很关键的过程,而调试用的最多的手段就是打印Log,嵌入式平台很少有显示设备,所以我们需要将信息通过串口打印到PC端。 MT254xboard上已经通过RS232芯片将UART0连接到DB9,我们只需要将DB9连接到电脑即可,UART0 对应的外部设备 IO 引脚关系为:P0_2------RX,P0_3------TX。转载 2015-11-27 14:12:49 · 1133 阅读 · 0 评论 -
第十二节 Flash的读写
第十二节 Flash的读写 嵌入式系统中需要存储数据,而片内的Flash资源很匮乏,所以我们经常需要使用SpiFlash来存储数据,MT254xboard中板载了一个512Kbyte的Flash,下面我们来驱动此Flash。上一小节中我们用SPI的方式驱动了LCD12864,这节我们继续用SPI来驱动板载的Flash,《GD25Q40.pdf》详细的说明了如何驱动这片Flash,在此不转载 2015-11-27 14:21:50 · 1229 阅读 · 0 评论 -
第二十一节 DHT11温湿度传感器
第二十一节 DHT11温湿度传感器(1)DHT11简介 DHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器,它应用专用的数字模块采集技术和温湿度传感技术,确保产品具有极高的可靠性和卓越的长期稳定性。传感器包括一个电阻式感湿元件和一个NTC测温元件,并与一个高性能8位单片机相连接。因此该产品具有品质卓越、超快响应、抗干扰能力强、性价比极高等优点。每个DHT11传转载 2015-11-28 10:00:19 · 4300 阅读 · 0 评论 -
第十五节 BLE蓝牙4.0协议栈启动分析
第十五节 BLE蓝牙4.0协议栈启动分析TI的这款CC2540/CC2541器件可以单芯片实现BLE蓝牙协议栈结构图的所有组件,包括应用程序。从这章开始我们来剖析协议栈源码,我们选用SimpleBLEPeripheral工程开刀,这是一个从机的例程,基本的工作是对外广播,等待主机来连接,读写展示的属性。首先打开工程文件,打开后可以看到整个工程的结构。 我们按照系统的启转载 2015-11-27 14:46:14 · 1139 阅读 · 0 评论 -
第十四节 OSAL工作原理
第十四节 OSAL工作原理 蓝牙为了实现同多个设备相连,或实现多功能,也实现了功能扩充,这就产生了调度问题。因为,虽然软件和协议栈可扩充,但终究最底层的执行部门只有一个。为了实现多事件和多任务切换,需要把事件和任务对应的应用,并起一个名字OSAL操作系统抽象层。OSAL管理的实现 如果实现软件和硬件的低耦合,使软件不经改动或很少改动即可应用在另外的硬件上,这样就方转载 2015-11-27 14:57:56 · 4983 阅读 · 0 评论 -
第二十九节 MT-iBeacon基站关于LightBlue软件的使用
第二十九节 MT-iBeacon基站关于LightBlue软件的使用在苹果商店APP Store中输入LightBlue,可查找到LightBlue软件,如下图所示:下载LightBlue软件。下载完成之后,打开LightBlue软件,如图所示:点击进入搜索到的馒头科技MT-iBeacon基站,如所示。这五个通道的详细说明参考《MT-iBeacon-用户手转载 2015-11-28 11:50:24 · 3640 阅读 · 0 评论 -
第三节 创建IAR工程-点亮LED
第三节 创建IAR工程-点亮LED 经过前面的准备工作,这章开始我们开始正式的开发过程。万事开头难,针对MT254xboard开发板的详细介绍参见《MT254xBoard-V1.0-硬件手册.pdf》,在这里我不做详述。 这个教程是为有一定51基础和C基础的人准备的,如果读者这方面还欠缺,请找相关方面的书籍恶补一下。CC2540的本质就是一个8051的单片机,所以我们裸机开发转载 2015-11-26 10:07:42 · 5324 阅读 · 0 评论 -
第四节 控制LED
第四节 控制LED 上一节点亮了单个LED灯,我们这堂课接着控制LED灯。这堂课我们要完成的是LED闪烁10次,蜂鸣器响1s钟。这里我们先使用延时函数进行。我们的程序一定要做到结构清晰,可移植性强,阅读性高。程序设计不仅仅是实现了功能,如果那样的代码,那只有你自己可以看懂,是一手垃圾。真正的漂亮代码具有阅读性高、可移植性强、代码规范性好。/*****************转载 2015-11-26 15:55:08 · 741 阅读 · 0 评论 -
第八节 CC254x内部温度传感器温度采集
第八节 CC254x内部温度传感器温度采集 CC254x内部有一个温度传感器,我们这节使用这个传感器来采集芯片的温度,此传感器精度不高。不适合用于实际的工程中,这里只为演示AD采样。要使用内部的温度采集我们需要使用AD采样,所以我们需要先来了解CC254x的AD功能。在后续课程有对ADC的详细说明。 ADC结构图如下所示: ADC控制寄存器1如下图所示:转载 2015-11-26 16:41:08 · 1624 阅读 · 0 评论 -
第十三节 BLE协议栈简介
第十三节 BLE协议栈简介 TI的协议栈分为两部分:控制器和主机。对于4.0以前的蓝牙,这两部分是分开的。所有profile和应用都建构在GAP或GATT之上。根据这张图,我们从底层开始介绍。TI的这款CC2540器件可以单芯片实现BLE蓝牙协议栈结构图的所有组件,包括应用程序。1.1.1 PHY层 1Mbps自适应跳频GFSK(高斯频移键控),运行在免证的2.4G转载 2015-11-27 14:33:28 · 2189 阅读 · 0 评论 -
第三十节 如何使用MT-USBDongle的透传功能
第三十节 如何使用MT-USBDongle的透传功能工具1. 请用户先确认是从馒头科技购买的具有透传功能的MT-USBDongle,或者用户自己更换成了具有透传功能的固件,若不确定请联系客服。2. 从馒头科技百度网盘中馒头科技蓝牙4.0系列——>MT-USBDongle——>透传测试软件文件夹中下载馒头科技官方提供的串口助手软件(无需安装可直接使用),以及Android端测试转载 2015-11-28 13:43:26 · 1580 阅读 · 0 评论