本系列教程将结合TI推出的CC254x SoC 系列,讲解从环境的搭建到蓝牙4.0协议栈的开发来深入学习蓝牙4.0的开发过程。教程共分为六部分,本文为第四部分:
第四部分知识点:
第十六节 协议栈LED实验
第十七节 协议栈LCD显示
第十八节 协议栈UART实验
第十九节 协议栈五向按键
第二十节 协议栈Flash数据存储
有关TI 的CC254x芯片介绍,可点击下面链接查看:
主流蓝牙BLE控制芯片详解(1):TI CC2540
同系列资料推荐:
由浅入深,蓝牙4.0/BLE协议栈开发攻略大全(1)
由浅入深,蓝牙4.0/BLE协议栈开发攻略大全(2)
由浅入深,蓝牙4.0/BLE协议栈开发攻略大全(3)
有关本文的工具下载,大家可以到以下这个地址:
朱兆祺ForARM
第十六节 协议栈LED实验
TI的协议栈中在HAL层已经有了LED的驱动,我们只需要针对我们的开发板进行配置即可,我们的开发板有两个LED,分别对应P1.0和P1.1。这个在裸机开发的时候已经介绍了。
为了保持协议栈原有的代码不变,我们在BLE-CC254x-1.4.0\Components\hal\target目录下新建一个文件夹,使它适应我们的开发板。
打开LED实验工程LEDExample,选择MT254xboard,并且在工程配置中要定义HAL_LED=TRUE,下载到开发板运行,可以看到两个LED同时在闪烁。
那我们的实现代码在哪里呢?其实在协议栈中实现这个很简单,在启动事件中我们调用了一个HalLedSet函数,并且设置了两个LED同时闪烁。
就是这么简单,协议栈已经把其它事情做好了,只需要我们调用设置函数即可。设置的模式总共有5种。
#define HAL_LED_MODE_OFF 0x00 // 关闭LED
#define HAL_LED_MODE_ON 0x01 // 打开LED
#define HAL_LED_MODE_BLINK 0x02 // 闪烁一次
#define HAL_LED_MODE_FLASH 0x04 // 不断的闪烁,最多255次
#define HAL_LED_MODE_TOGGLE 0x08 // 翻转LED状态
为了适应不同的需求,我们可能需要更改LED的输出引脚,如图板级配置在hal_board_cfg.h文件中。
这里我们的开发板只有两个LED,所以我们在这里根据开发板的实际情况修改相应的IO口。